Python讓你的資料生成視覺化圖形
Echarts 是百度開源的一個數據視覺化 JS 庫,主要用於資料視覺化。pyecharts 是一個用於生成 Echarts 圖表的類庫。實際上就是 Echarts 與 Python 的對接。
今天就用 pyecharts 庫來畫圖。
安裝
最簡單快速的命令安裝方法:
pip install pyecharts
柱形圖
柱形圖簡明、醒目,是一種常用的統計圖形。以下生成的圖都可以點選 html 檔案開啟,點選圖形右邊下載按鈕可以下載到本地。
from pyecharts import Bar bar = Bar("成績柱形圖", "副標題") # 用於新增圖表的資料和設定各種配置項 # is_more_utils=True可以按右邊的下載按鈕將圖片下載到本地 bar.add("成績表", ["語文", "數學", "英語", "物理", "化學", "生物"], [88, 90, 92, 87, 83, 81], is_more_utils=True) bar.show_config() # 列印輸出圖表的所有配置項 bar.render('D:\pye\bar.html') # 在指定目錄下生成一個 bar.html 的檔案

image
餅圖
餅圖英文學名為 Sector Graph, 又名 Pie Graph,常用於統計學模組。
Python學習群:556370268,有大牛答疑,有資源共享!是一個非常不錯的交流基地!歡迎喜歡Python的小夥伴!
from pyecharts import Pie attr = ["語文", "數學", "英語", "物理", "化學", "生物"] score = [20, 30, 40, 25, 10, 15] pie = Pie('圖書銷量餅圖') pie.add('', attr, score, is_label_show=True) pie.render('F:\pye\pie.html')

image
圓環圖
僅排列在工作表的列或行中的資料可以繪製到圓環圖中。
from pyecharts import Pie attr = ["語文", "數學", "英語", "物理", "化學", "生物"] score = [20, 30, 40, 25, 10, 15] pie = Pie('圖書銷量圓環圖', title_pos='center') pie.add('', attr, score, radius=[40, 75], label_text_color=None, is_label_show=True, legend_orient='vertical', legend_pos='left') pie.render('F:\pye\pieround.html') # 在指定目錄下生成檔案

image
3D散點圖
散點圖是指在迴歸分析中,資料點在直角座標系平面上的分佈圖,散點圖表示因變數隨自變數而變化的大致趨勢,據此可以選擇合適的函式對資料點進行擬合。
from pyecharts import Scatter3D from pyecharts import Page import random page = Page() data = [[random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)] for _ in range(80)] range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] scatter3D = Scatter3D("3D 散點圖示例", width=1200, height=600) scatter3D.add("", data, is_visualmap=True, visual_range_color=range_color) page.add(scatter3D) page.render('D:\pye\scatter.html') # 在指定目錄下生成檔案

image
3D折線圖
折線圖是排列在工作表的列或行中的資料可以繪製到折線圖中。折線圖可以顯示隨時間(根據常用比例設定)而變化的連續資料,因此非常適用於顯示在相等時間間隔下資料的趨勢。
from pyecharts import Line3D data = [[1, 2, 3, 4], [1, 2, 3, 4], [0, 4, 8, 16]] Line3D = Line3D("3D 折線圖示例", width=1200, height=600) Line3D.add("", data, is_visualmap=True) Line3D.render('F:\pye\3D折線圖.html') # 在指定目錄下生成檔案

image
儀表盤
儀表盤圖的效果如下圖所示,圖中指標指向的位置是當前的數值。
from pyecharts import Gauge gauge = Gauge('專案完成進度') gauge.add('進度表', '完成率', 88.88) gauge.render('F:\pye\gauge.html') # 在指定目錄下生成檔案

image
漏斗圖
漏斗圖這種方法起源於作業管理領域。
from pyecharts import Funnel attr = ['認知', '瞭解', '認可', '考慮', '意向', '購買'] value = [120, 100, 80, 60, 40, 20] funnel = Funnel('客戶購買分析圖') funnel.add('買車', attr, value, is_label_show=True, label_pos='inside', label_text_color='#fff') funnel.render('F:\pye\funel.html') # 在指定目錄下生成檔案

image
地圖
以下資料是模擬的資料,為了畫圖展示用的,沒有參考價值。
from pyecharts import Geo data = [ ("上海", 25), ("北京", 36), ("武漢", 23), ("舟山", 12), ("齊齊哈爾", 14), ("鹽城", 15), ("赤峰", 16), ("青島", 18), ("乳山", 18), ("金昌", 19), ("泉州", 21), ("萊西", 21), ("日照", 21), ("膠南", 22), ("南通", 23), ("拉薩", 24), ("雲浮", 24), ("梅州", 25)] geo = Geo('主要城市空氣質量', 'PM2.5', title_color='#fff', title_pos='center', width=1200, height=600, background_color='#404a59') attr, value = geo.cast(data) geo.add('', attr, value, visual_range=[0, 200], visual_text_color='#fff', symbol_size=15, is_visualmap=True, is_piecewise=True, visual_split_number=6) geo.render('F:\pye\geo.html') # 在指定目錄下生成檔案

image
詞雲圖
還記得上次我們用 wordcloud 庫畫的微信朋友簽名詞雲和搖滾歌手歌詞的詞雲圖吧,用 pyecharts 庫也可以畫出來。我們以 IEEE Spectrum 釋出的 2018 年度頂級程式語言排行榜作為資料來製作詞雲圖。
from pyecharts import WordCloud language = ['Python', 'C++', 'C', 'Java', 'C#', 'PHP', 'R', 'JavaScript', 'Go', 'Assembly'] rank = [100, 98.4, 98.2, 97.5, 89.8, 85.4, 83.3, 82.8, 76.7, 74.5] wordcloud = WordCloud(width=1500, height=700) wordcloud.add('', language, rank, word_size_range=[20, 100]) wordcloud.render('F:\pye\wc.html') # 在指定目錄下生成檔案

image
水球圖
水球圖是一種適合於展現單個百分比資料的圖表型別。
from pyecharts import Liquid liquid = Liquid("水球圖") liquid.add("Liquid", [0.8]) liquid.show_config() liquid.render('F:\pye\sq.html') # 在指定目錄下生成檔案

image