用 pyecharts 制作數據可視化大屏之數據地圖
前段時間,我看到?20 個炫酷的數據可視化大屏,源代碼都是基于 echarts 的,于是我產生了用 Python 來實現(xiàn)數據可視化大屏的想法。

參考上面這個模板,我計劃用 pyecharts 實現(xiàn)一個類似的數據可視化大屏。
今天先繪制中間的數據地圖,為了方便演示,我們采用一個超市數據集,數據來源于 Tableau 官方示例。
你可以點擊左下方閱讀原文的鏈接,用電腦下載到本地之后,把 Excel 數據文件保存到 data 文件夾中。
如果你還沒有安裝 pyecharts,那么請先打開命令行,運行以下代碼:
# 安裝或更新 v1 以上版本,目前是 1.9.0pip3 install pyecharts -U
在 Jupyter Lab 中新建一個 Notebook,運行以下代碼:
# 聲明 Notebook 類型,必須在引入 pyecharts.charts 等模塊前聲明from pyecharts.globals import CurrentConfig, NotebookTypeCurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB# 導入相關庫from pyecharts import options as optsfrom pyecharts.charts import Mapfrom pyecharts.globals import ThemeTypeimport pandas as pd# 從 data 文件夾讀取 Excel 中的數據df = pd.read_excel('./data/超市數據.xlsx')# 用數據透視表的方法匯總各省銷售額province_sale = df.pivot_table(values='銷售額', index='省/自治區(qū)', aggfunc=sum)# 把數據整理成繪圖所需的列表格式,規(guī)范名稱,銷售額換算成萬元,保留一位小數list_province_sale = [list(z) for z in zip(province_sale.index.str.replace('自治區(qū)', ''), round(province_sale.銷售額/10000, 1))]# 求各省銷售額的最大值max_sale = round(province_sale.銷售額.max()/10000,0)# 標題,數字千分位格式顯示title = "{:,}".format(int(province_sale.銷售額.sum()))# 副標題subtitle = '\t\t2016年到2019年總銷售額'# 繪制地圖c = (# 主題樣式和背景顏色Map(init_opts=opts.InitOpts(theme=ThemeType.SHINE, chart_id=1, bg_color='#00589F'))# 添加地圖數據.add("", list_province_sale, "china")# 全局配置.set_global_opts(# 標題文字title_opts=opts.TitleOpts(title=title,# 副標題subtitle=subtitle,# 標題位置pos_left='39%', pos_top=20,# 標題顏色和大小title_textstyle_opts=opts.TextStyleOpts(color="#FBC171", font_size=36),# 副標題顏色和大小subtitle_textstyle_opts=opts.TextStyleOpts(color="#CCCCCC", font_size=15)),# 可視化組件參數visualmap_opts=opts.VisualMapOpts(# 最大值max_=max_sale,# 顯示精確的分段值is_piecewise=True,# 圖例位置pos_left='30%', pos_bottom=10,# 圖例字體顏色textstyle_opts=opts.TextStyleOpts(color="#FFFFFF")))# 隱藏文字標簽.set_series_opts(label_opts=opts.LabelOpts(is_show=False)))# 在 Jupyter Lab 中第一次渲染時需要調用_ = c.load_javascript()
然后,運行以下代碼:
# 需要與 load_javascript 在不同的單元格中運行c.render_notebook()
就能得到如下數據地圖:

對于顏色的深淺和氣泡的大小,我們的感知能力其實是比較弱的,通常很難精準地判斷差異。
從有效傳遞信息的角度來看,林驥認為上面這種分段式的數據地圖,比普通的熱力地圖和氣泡地圖更加有效。
下一篇文章,我將用 pyecharts 繪制數據可視化大屏中的其他圖表,敬請關注。


數據可視化|用熱力地圖進行數據分析

評論
圖片
表情
