一、Pyecharts簡介
Echarts是XX開源的數據可視化js庫,而python是強大的腳本語言,將Echarts和python結合起來,就組成了pyecharts可視化python庫,這對於簡單的數據可視化是非常容易的。
二、Pyecharts安裝
pyecharts 分為 v0.5.X 和 v1 兩個大版本,v0.5.X 和 v1 間不兼容,並對應不同的python版本。pyecharts的v0.5.X版本支持python2.7、python3.4+;pyecharts的v1版本僅支持python3.6+。個人覺得v1版本的功能更強大也更方便使用一些。
(1)安裝v0.5.X版本:pip install pyecharts == 0.5.5
(2)安裝最新版(v1以上):pip install pyecharts
三、配置項簡介
pyecharts的圖表樣式都是通過配置來操作的,包括初始化、全局配置項、系列配置項、圖表配置項等。
初始化
在初始化配置中,可以設置畫布的長、寬,網頁標題、圖表主題、背景色等;
初始化可通過options.InitOpts
設置
#表示設置柱狀圖的長為600px,寬為400px bar = Bar(init_opts=options.InitOpts("600px","400px"))
全局配置項
全局配置項通過set_global_options
方法設置
1、標題配置項
標題配置項中常用的為標題內容及展示位置、標題字體、大小等,如下示例:
#title_opts為全局配置項中標題設置參數 #options.TitleOpts為全局配置項中標題設置的值,是一個方法 #方法的參數包括圖表標題名稱title、位置pos_left、pos_right等,以下表示居中顯示 title_opts=options.TitleOpts(title="示例",pos_left="center",pos_right="center")
#title_textstyle_opts是options.TitleOpts的另一個參數,表示文本類型 #options.TextStyleOpts為設置文本字體、大小的值,以下表示字體為“微軟雅黑”,字體大小為12 title_textstyle_opts=options.TextStyleOpts(font_family="微軟雅黑",font_size="12")
2、圖表Y軸樣式
圖表分割線也需要在全局配置項中設置,如下:
#yaxis_opts為全局配置的y軸展示樣式參數 #options.AxisOpts為系列配置項的坐標軸配置 #splitline_opts表示是否展示坐標軸的分割線,默認為False,即不展示 yaxis_opts=options.AxisOpts(splitline_opts=options.SplitLineOpts(is_show=True))
3、圖例設置項
圖例的展示形式、位置也是需要在全局配置項中設置的,如下:
# legend_opts表示全局配置的圖例配置項 #options.LegendOpts表示圖例配置項的值,可以配置位置、字體、大小等,如下: legend_opts=options.LegendOpts(pos_bottom="0", textstyle_opts=options.TextStyleOpts(font_family="微軟雅黑",font_size="8"))
系列配置項
系列配置項通過set_series_opts
方法設置
1、標簽配置項
標簽配置項可配置標簽的字體顏色、字體大小等,如下:
#label_opts表示標簽選項參數 #options.LabelOpts表示配置標簽選項的方法 #方法包括顏色配置、字體、大小等 .set_series_opts(label_opts=options.LabelOpts(color="#0A0A0D",font_family="微軟雅黑",font_size="10"))
2、分割線配置項
分割線配置項作為系列配置項,常用作全局配置項中的Y軸樣式的參數值,如下:
yaxis_opts=options.AxisOpts(splitline_opts=options.SplitLineOpts(is_show=True))
圖表配置項
除了全局和系列配置項,具體的圖表類型也有自己獨特的配置項,比如柱狀圖就可以設置柱子之間的寬度、柱子的寬度以及柱子的顏色,如下:
#category_gap可以設置柱子的寬度,因為默認的柱子寬度可能會寬,不好看 #options.ItemStyleOpts可以設置柱子的顏色,如果會js,可以嵌入js實現柱子不同的顏色 bar.add_yaxis("",data,category_gap='60%',itemstyle_opts=options.ItemStyleOpts(color="#ccc"))
注:以上的配置項可以滿足做一個好看的圖表了,如果想深入學習可以去官方文檔
四、應用實例
from pyecharts.charts import Bar from pyecharts import options from pyecharts.render import make_snapshot # 使用 snapshot-selenium 渲染圖片 from snapshot_selenium import snapshot bar = Bar(init_opts=options.InitOpts("600px", "400px")) # 設置畫布高和寬 bar.add_xaxis(["襪子", "鞋子","襯衫","毛衣"]) bar.add_yaxis("", data, category_gap='60%', itemstyle_opts=options.ItemStyleOpts()) bar.set_global_opts(title_opts=options.TitleOpts(title=titleName, pos_left="center", pos_right="center", title_textstyle_opts=options.TextStyleOpts(font_family="微軟雅黑", font_size="12")), yaxis_opts=options.AxisOpts(splitline_opts=options.SplitLineOpts(is_show=True))) bar.set_series_opts(label_opts=options.LabelOpts(color="#0A0A0D", font_family="微軟雅黑", font_size="10")) PNGName = titleName + ".png" #生成圖片 make_snapshot(snapshot, bar.render(), PNGName)