你该知道的Pyecharts简易上手教程
最近領導甩給我兩張報表,讓我實現報表的聯結和可視化展現,要求是通過代碼實現,使得每天花費在這項工作上的時間越短越好,要求查詢精確,還要漂亮豐富多彩。
數據查詢的工作,我會在后期的文章中展現,因為文件涉及到公司內部資料,后期我會選擇用其他的數據代替。而“豐富多彩”的圖表,我立馬就想到了他之前提到的ECHARTS這個強大的可于是就想探索一番。
Echarts中有各式各樣的圖標示例,并且可以自己切換各種風格和配色,幾乎能夠滿足所有日常的工作需求
隨便點開一個示例圖,左邊是代碼(可編輯),右邊是展示圖例。Echarts的代碼腳本都是JavaScript,對于我這種小白來說,也可以看得懂,并且其中很多函數的用法和python中都是一致的。
新的探索
一開始我嘗試在Echarts網站中直接編輯修改代碼生成圖例,但是因為每天的報表都要更新統計,而每天重新打開Echarts、再找到圖例再輸入數字修改,效率很低。
于是我去查閱是否可以將python和Echarts結合起來,或者python中是否有類似于Echarts功能的強大的開源庫。最后我終于發現了Pyecharts!(鼓掌鼓掌)
1. 火速安裝Pyecharts
和安裝任何一個python庫一樣,首先調出你的python環境
電腦win+R 輸入cmd進入:
輸入activate python37
我這里是conda的虛擬環境,命名為python37
接著輸入 pip install Pyecharts 即可,很快就會裝好
2. 快速上手
Pyecharts可以展示動態圖,在線報告使用比較美觀,并且展示數據方便,鼠標懸停在圖上,即可顯示數值、標簽等。
我需要去呈現的是:
在兩個不同的path下核對的總數,和本月每個path下核對的正確率,且鼠標懸停在圖中的任何一個位置,都可以顯示具體數據信息。
我采用雙y軸去展現,最后期望圖就是這樣:
①導入需要的模塊:
Bar 和Line是我們需要畫柱狀圖和折線圖需要用到的類,options是pyecharts全局配置項。
什么是全局配置項呢?簡而言之,就是我們為我們生成的圖例加上標題、圖例、顏色和各種其他配置,是作用與整個圖例中,而不是單獨一類圖中。我們可以理解成這是一個類中的全局變量,而不同的圖都是需要加入到這個大類中的一個方法。
② 分別定義我們的柱狀圖和折線圖函數:
def bar_charts():bar1 = (Bar(init_opts=opts.InitOpts(width='1000px',height='500px')) # 示例對象實例化.add_xaxis(date) # x軸數據.add_yaxis("match",A) # 圖例名稱 + y軸數據.add_yaxis("total",B)# 全局配置:標題/副標題.set_global_opts(title_opts=opts.TitleOpts(title="折柱圖日報"),tooltip_opts=opts.TooltipOpts(trigger='axis',axis_pointer_type='cross'), # 指示器類型,十字/陰影/直線/無toolbox_opts=opts.ToolboxOpts(is_show = True, ))# bar 拓展.extend_axis(yaxis=opts.AxisOpts( # 右側y軸標簽name='',type_='value', # 類型min_=0, #右側y軸的最小值max_=100, #右側y軸的最大值interval=10, # y軸間隔axislabel_opts=opts.LabelOpts(formatter='{value}%') )))return bar1def line_charts():line1=(Line().add_xaxis(date).add_yaxis('percent',y,yaxis_index=1, # 線圖用右側索引,因此為1label_opts=opts.LabelOpts(is_show=True),is_smooth=True))return line1③ 將折線圖加到柱狀圖上,用overlap() 函數:
bar1.overlap(line1).render('1212.html')附上全部代碼:
#導入我們需要的模塊 from pyecharts.charts import Bar,Line from pyecharts import options as optsdate=['9.1','9.2','9.6','9.7','9.8','9.10','9.11','9.12','9.17'] A= [1,2,2,1,0,3,0,1,2] B= [1,2,4,1,3,9,2,1,2] y=[100,1,50,100,0,33.33,0,1,100] def bar_charts():bar1 = (Bar(init_opts=opts.InitOpts(width='1000px',height='500px')) # 示例對象.add_xaxis(date) # x軸數據.add_yaxis("match",A) # 圖例名稱 + y軸數據.add_yaxis("total",B)# 全局配置:標題/副標題.set_global_opts(title_opts=opts.TitleOpts(title="折柱圖日報"),tooltip_opts=opts.TooltipOpts(trigger='axis',axis_pointer_type='cross'), # 指示器類型,十字/陰影/直線/無toolbox_opts=opts.ToolboxOpts(is_show = True, ))# bar 拓展.extend_axis(yaxis=opts.AxisOpts( # 右側y軸標簽name='',type_='value', # 類型min_=0,max_=100,interval=10, # 間隔axislabel_opts=opts.LabelOpts(formatter='{value}%') )))return bar1def line_charts():line1=(Line().add_xaxis(date).add_yaxis('percent',y,yaxis_index=1, # 線圖用右側索引,因此為1label_opts=opts.LabelOpts(is_show=True),is_smooth=True))return line1bar1=bar_charts() line1=line_charts()# line1.render_notebook() bar1.overlap(line1).render('1212.html')Pyecharts的功能遠不止于此,網上有各種帖子可以參考做出不同的圖,我這里就不一一展示了,希望對你有所幫助。
生活啊,就是在一次次想要放棄的時候,又重燃希望啊!
總結
以上是生活随笔為你收集整理的你该知道的Pyecharts简易上手教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++11 新功能
- 下一篇: ZOJ 3789 Gears