首頁 > 軟體

Python實現資料視覺化大屏佈局的範例詳解

2022-11-27 14:01:13

資料視覺化大屏展示需求無疑是對資料分析結果最好的詮釋,能夠使得別人能夠輕鬆的就理解我們的資料意圖。

之前我們視覺化的展示過程中已經使用幾種比較優秀的python資料視覺化應用模組,有興趣的朋友可以前往歷史文章中搜尋相應的實戰案例。

今天所說的資料視覺化的大屏展示是通過pyecharts模組來實現的,由於其本身生成的就是html的程式碼塊,這一點非常有利於我們對大屏實現的要求。

若是沒有安裝pyecharts非標準庫的朋友可以使用pip的方式安裝一下即可。

pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple/

完事兒之後,我們將所有需要使用到的python模組全部匯入到我們的程式碼塊中。

# Importing the options module from the pyecharts package and renaming it to opts.
from pyecharts import options as opts

# Importing the Bar and Scatter3D classes from the pyecharts.charts module.
from pyecharts.charts import Bar, Scatter3D

# Importing the random module.
import random

為了展示大屏的佈局效果,我們分別實現了柱狀圖、3D資料圖的展示效果從而在大屏中進行展示。

若是想要加入線形圖、餅圖等其他型別的視覺化圖形,我們可以直接在大屏佈局中進行自由新增。

開發一個函數bar(),用來畫出柱狀圖的顯示效果,並返回柱狀圖物件。

def bar():
    """
    It does nothing.
    """
    cate = ['1月', '2月', '3月', '4月', '5月', '6月']
    bar_ = (
        Bar()
            .add_xaxis(cate)
            .add_yaxis("生產量", [random.randint(1000, 3000) for _ in cate])
            .add_yaxis("銷售量", [random.randint(1200, 2800) for _ in cate])
            .set_global_opts(title_opts=opts.TitleOpts(title="2022年訂單生產與銷售"))
    )
    return bar_

開發一個函數scatter_3d(),用來畫出3D的顯示效果,並返回3D圖物件。

def scatter_3d():
    """
    > This function takes in a list of x, y, and z coordinates and plots them in a 3D scatter plot
    """
    data = [(random.randint(100, 200), random.randint(100, 200), random.randint(100, 200)) for _ in range(60)]
    scatter_ = (Scatter3D()
        .add("", data)
        .set_global_opts(
        title_opts=opts.TitleOpts(title="3D資料隨機分佈圖"))
    )
    return scatter_

開發完兩個圖形繪製的函數之後,我們需要將其展示到頁面中,這裡採用pyechaerts模組頁面元件Page物件。

# Importing the Page class from the pyecharts.charts module.
from pyecharts.charts import Page

# Creating a page object with a simple page layout.
page = Page(layout=Page.SimplePageLayout)
page.add(
    bar(),
    scatter_3d(),
)
page.render("資料中心.html")

通過上面的操作已經完成了頁面的圖形繪製,並且生成了html的原始碼,只需要將.html的檔案拖到瀏覽器中即可檢視大屏的視覺化效果。

接下來為了使視覺化的資料展示的更加的美觀,我們可以使用bs4模組的BeautifulSoup物件初始化html物件後修改背景展示效果。

# Importing the BeautifulSoup class from the bs4 module.
from bs4 import BeautifulSoup


with open("資料中心.html", "r+", encoding='utf-8') as h:
    html_ = BeautifulSoup(h, 'lxml')
    body = html_.find("body")
    body["style"] = "background-image: url(背景.jpeg);background-repeat: no-repeat;background-size:cover;"
    html_new = str(html_)
    h.seek(0, 0)
    h.truncate()
    h.write(html_new)

找一張自己能看順眼的高清背景圖,將下面這行程式碼塊中的背景圖替換成自己的背景圖片路徑即可。

background-image: url(背景.jpeg)

到此這篇關於Python實現資料視覺化大屏佈局的範例詳解的文章就介紹到這了,更多相關Python資料視覺化大屏內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com