Python使用pyecharts控件繪制圖表
一、Echarts簡介
Echarts 是一個由百度開源的數據可視化,憑借著良好的交互性,精巧的圖表設計,得到瞭眾多開發者的認可。而 Python 是一門富有表達力的語言,很適合用於數據處理。當數據分析遇上數據可視化時,pyecharts 誕生瞭。
分v0.5.x 和 V1 間不兼容,導致很多代碼不可復用,舊版本將不再維護。
1、特性
- 簡潔的 API 設計,使用如絲滑般流暢,支持鏈式調用
- 囊括瞭 30+ 種常見圖表,應有盡有
- 支持主流 Notebook 環境,Jupyter Notebook 和 JupyterLab
- 可輕松集成至 Flask,Sanic,Django 等主流 Web 框架
- 高度靈活的配置項,可輕松搭配出精美的圖表
- 詳細的文檔和示例,幫助開發者更快的上手項目
- 多達 400+ 地圖文件,並且支持原生百度地圖,為地理數據可視化提供強有力的支持
2、相關資源:
- 官網
- 項目地址
- 中文文檔(含5分鐘入門教程)
- English Documentation
- 示例 Example
二、使用
現在我們來開始正式使用pycharts,這裡我們直接使用官方的數據:
1、柱狀圖-Bar
//導入柱狀圖-Bar from pyecharts import Bar //設置行名 columns = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] //設置數據 data1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] data2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] //設置柱狀圖的主標題與副標題 bar = Bar("柱狀圖", "一年的降水量與蒸發量") //添加柱狀圖的數據及配置項 bar.add("降水量", columns, data1, mark_line=["average"], mark_point=["max", "min"]) bar.add("蒸發量", columns, data2, mark_line=["average"], mark_point=["max", "min"]) //生成本地文件(默認為.html文件) bar.render()
簡單的幾行代碼就可以將數據進行非常好看的可視化,而且還是動態的,在這裡還是要安利一下jupyter,pyecharts在v0.1.9.2版本開始,在jupyter上直接調用實例(例如上方直接調用bar)就可以將圖表直接表示出來,非常方便。
筆者數瞭數,目前pyecharts上的圖表大概支持到二十多種,接下來,我們再用上方的數據來生成幾個數據挖掘常用的圖表示例:
2、餅圖-Pie
//導入餅圖Pie from pyecharts import Pie //設置主標題與副標題,標題設置居中,設置寬度為900 pie = Pie("餅狀圖", "一年的降水量與蒸發量",title_pos='center',width=900) //加入數據,設置坐標位置為【25,50】,上方的colums選項取消顯示 pie.add("降水量", columns, data1 ,center=[25,50],is_legend_show=False) //加入數據,設置坐標位置為【75,50】,上方的colums選項取消顯示,顯示label標簽 pie.add("蒸發量", columns, data2 ,center=[75,50],is_legend_show=False,is_label_show=True) //保存圖表 pie.render()
3、箱體圖-Boxplot
//導入箱型圖Boxplot from pyecharts import Boxplot boxplot = Boxplot("箱形圖", "一年的降水量與蒸發量") x_axis = ['降水量','蒸發量'] y_axis = [data1,data2] //prepare_data方法可以將數據轉為嵌套的 [min, Q1, median (or Q2), Q3, max] yaxis = boxplot.prepare_data(y_axis) boxplot.add("天氣統計", x_axis, _yaxis) boxplot.render()
4、折線圖-Line
from pyecharts import Line line = Line("折線圖","一年的降水量與蒸發量") //is_label_show是設置上方數據是否顯示 line.add("降水量", columns, data1, is_label_show=True) line.add("蒸發量", columns, data2, is_label_show=True) line.render()
5、雷達圖-Rader
from pyecharts import Radar radar = Radar("雷達圖", "一年的降水量與蒸發量") //由於雷達圖傳入的數據得為多維數據,所以這裡需要做一下處理 radar_data1 = [[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]] radar_data2 = [[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]] //設置column的最大值,為瞭雷達圖更為直觀,這裡的月份最大值設置有所不同 schema = [ ("Jan", 5), ("Feb",10), ("Mar", 10), ("Apr", 50), ("May", 50), ("Jun", 200), ("Jul", 200), ("Aug", 200), ("Sep", 50), ("Oct", 50), ("Nov", 10), ("Dec", 5) ] //傳入坐標 radar.config(schema) radar.add("降水量",radar_data1) //一般默認為同一種顏色,這裡為瞭便於區分,需要設置item的顏色 radar.add("蒸發量",radar_data2,item_color="#1C86EE") radar.render()
6、散點圖-scatter
from pyecharts import Scatter scatter = Scatter("散點圖", "一年的降水量與蒸發量") //xais_name是設置橫坐標名稱,這裡由於顯示問題,還需要將y軸名稱與y軸的距離進行設置 scatter.add("降水量與蒸發量的散點分佈", data1,data2,xaxis_name="降水量",yaxis_name="蒸發量", yaxis_name_gap=40) scatter.render()
7、圖表佈局 Grid
由於標題與圖表是屬於兩個不同的控件,所以這裡必須對下方的圖表Line進行標題位置設置,否則會出現標題重疊的bug。
from pyecharts import Grid //設置折線圖標題位置 line = Line("折線圖","一年的降水量與蒸發量",title_top="45%") line.add("降水量", columns, data1, is_label_show=True) line.add("蒸發量", columns, data2, is_label_show=True) grid = Grid() //設置兩個圖表的相對位置 grid.add(bar, grid_bottom="60%") grid.add(line, grid_top="60%") grid.render()
from pyecharts import Overlap overlap = Overlap() bar = Bar("柱狀圖-折線圖合並", "一年的降水量與蒸發量") bar.add("降水量", columns, data1, mark_point=["max", "min"]) bar.add("蒸發量", columns, data2, mark_point=["max", "min"]) overlap.add(bar) overlap.add(line) overlap.render()
總結
- 導入相關圖表包
- 進行圖表的基礎設置,創建圖表對象
- 利用add()方法進行數據輸入與圖表設置(可以使用print_echarts_options()來輸出所有可配置項)
- 利用render()方法來進行圖表保存
pyecharts還有許多好玩的3D圖表和地圖圖表,個人覺得地圖圖表是最好玩的,各位有興趣可以去pyecharts的使用手冊查看,有中文版的非常方便。
到此這篇關於Python使用pyecharts控件繪制圖表的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Python 數據可視化神器Pyecharts繪制圖像練習
- Python可視化神器pyecharts之繪制箱形圖
- Python pyecharts Boxplot箱線圖的實現
- Python pyecharts繪制柱狀圖
- pyecharts繪制各種數據可視化圖表案例附效果+代碼