Pyecharts 繪圖 AP I總結
一、初識Pyecharts
pyecharts簡介
pyecharts 是一個用于生成 Echarts 圖表的類庫, Echarts 是一個由百度開源的數據可視化,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發(fā)者的認可。而 Python 是一門富有表達力的語言,很適合用于數據處理。當數據分析遇上數據可視化時,pyecharts 誕生了。
Pyecharts官網
https://pyecharts.org/#/zh-cn/intro
pyecharts安裝
- pip install pyecharts
二、Pyecharts可視化
使用pyecharts可以繪制如下圖表:
Scatter | 散點圖 | Funnel | 漏斗圖 |
---|---|---|---|
Bar | 柱狀圖 | Gauge | 儀表盤 |
Pie | 餅圖 | Graph | 關系圖 |
Line | 折線/面積圖 | Liquid | 水球圖 |
Radar | 雷達圖 | Parallel | 平行坐標系 |
Sankey | ?;鶊D | Polar | 極坐標系 |
WordCloud | 詞云圖 | HeatMap | 熱力圖 |
2.0、初始化設置
導入相關庫:
- from pyecharts.charts import *
- import pyecharts.options as opts
- from pyecharts.charts import *: 可以使用所有的圖表對應的函數;
- 使用 options 配置項,在 pyecharts 中,一切皆 Options,進行參數設置;
總體說明一下:
- .render_notebook ()隨時隨地渲染圖表;
- .render() 這個不會直接產生圖表,而是形成一個render.html的文件,可在瀏覽器中打開查看圖表;
2.1、scatter()
這里我們繪制一個正余弦的散點圖
- x = np.linspace(0, 2*np.pi, 100)
- y = np.sin(x)
- y2 = np.cos(x)
- # 參數設置
- (Scatter() # 圖形種類
- .add_xaxis(xaxis_data=x) # 設置x軸序列
- .add_yaxis(series_name='sin', y_axis=y) # 設置y軸序列
- .add_yaxis(series_name='cos', y_axis=y2, label_opts=opts.LabelOpts(is_show=False)) # is_show = False:表示不顯示數值部分
- ).render_notebook()
結果如下:
2.2、line()
- from pyecharts.charts import Line
- import pyecharts.options as opts
- x = np.linspace(0, 2*np.pi, 100)
- y = np.sin(x)
- (
- Line()
- .add_xaxis(xaxis_data=x)
- .add_yaxis(series_name='sin', y_axis=y, label_opts=opts.LabelOpts(is_show=False))
- .add_yaxis(series_name='cos', y_axis=np.cos(x), label_opts=opts.LabelOpts(is_show=False))
- .set_global_opts(title_opts=opts.TitleOpts(title='曲線'),
- tooltip_opts=opts.TooltipOpts(axis_pointer_type='cross')
- )
- ).render_notebook()
結果如下所示:
2.3、Bar()
柱狀圖的繪制:
- from pyecharts.charts import Bar
- bar = (
- Bar()
- .add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
- .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
- )
- bar.render_notebook()
結果如下:
當然,這里只是最基本的柱圖使用;我們還可以繪制混合柱圖;
- from pyecharts.charts import Bar
- import pyecharts.options as opts
- num = [110, 136, 108, 48, 111, 112, 103]
- num2 = [90, 110, 101, 70, 90, 120, 99]
- lab = ['哈士奇', '薩摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基']
- (
- Bar(init_opts=opts.InitOpts(width='720px', height='320px'))
- .add_xaxis(xaxis_data=lab)
- .add_yaxis(series_name='商家A', yaxis_data=num)
- .add_yaxis(series_name='商家B', yaxis_data=num2)
- .set_global_opts(
- title_opts=opts.TitleOpts(title='各商家擁有犬類數量情況', subtitle='如有雷同,純屬意外')
- )
- ).render_notebook()
結果如下所示:
2.4、Pie()
普通餅圖:
- from pyecharts.charts import Pie
- import pyecharts.options as opts
- num = [110, 136, 108, 48, 111, 112, 103]
- lab = ['哈士奇', '薩摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基']
- (
- Pie(init_opts=opts.InitOpts(width='720px', height='320px'))
- .add(series_name='',
- data_pair=[(j, i) for i, j in zip(num, lab)]
- )
- ).render_notebook()
結果如下:
環(huán)狀餅圖:
- from pyecharts.charts import Pie
- import pyecharts.options as opts
- num = [110, 136, 108, 48, 111, 112, 103]
- lab = ['哈士奇', '薩摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基']
- (
- Pie(init_opts=opts.InitOpts(width='720px', height='320px'))
- .add(series_name='',
- radius=['40%', '75%'],
- data_pair=[(j, i) for i, j in zip(num, lab)]
- )
- ).render_notebook()
如圖所示:
玫瑰餅圖:
- from pyecharts.charts import Pie
- import pyecharts.options as opts
- num = [110, 136, 108, 48, 111, 112, 103]
- lab = ['哈士奇', '薩摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基']
- (
- Pie(init_opts=opts.InitOpts(width='720px', height='320px'))
- .add(series_name='',
- # radius=['40%', '75%'],
- # center=['25%', '50%'],
- rosetype='radius',
- data_pair=[(j, i) for i, j in zip(num, lab)]
- )
- ).render_notebook()
如圖所示:
2.5、圖表的組合使用
- from pyecharts.charts import Bar, Line
- num = [110, 136, 108, 48, 111, 112, 103]
- lab = ['哈士奇', '薩摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基']
- bar = (
- Bar(init_opts=opts.InitOpts(width='720px', height='320px'))
- .add_xaxis(xaxis_data=lab)
- .add_yaxis(series_name='', yaxis_data=num)
- )
- lines = (
- Line()
- .add_xaxis(xaxis_data=lab)
- .add_yaxis(series_name='', y_axis=num, label_opts=opts.LabelOpts(is_show=False))
- )
- bar.overlap(lines).render_notebook()
如圖所示:
三、總結
Pyecharts可以繪制各種各樣的圖表,主流的一個數據可視化的庫,因為相對于matplotlib,seaborn等數據可視化庫,它的交互性比較好,圖形繪制的比較清晰美觀,所以應用的比較廣泛,本文主要就普通常用圖形做了簡單的總結,當然它還可以繪制地理圖形,具體參見官網相關API。
本文轉載自微信公眾號「IT共享之家」,可以通過以下二維碼關注。轉載本文請聯(lián)系IT共享之家公眾號。