Pyecharts 繪圖 AP I總結(jié)
一、初識Pyecharts
pyecharts簡介
pyecharts 是一個(gè)用于生成 Echarts 圖表的類庫, Echarts 是一個(gè)由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。而 Python 是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時(shí),pyecharts 誕生了。
Pyecharts官網(wǎng)
https://pyecharts.org/#/zh-cn/intro
pyecharts安裝
- pip install pyecharts
二、Pyecharts可視化
使用pyecharts可以繪制如下圖表:
Scatter | 散點(diǎn)圖 | Funnel | 漏斗圖 |
---|---|---|---|
Bar | 柱狀圖 | Gauge | 儀表盤 |
Pie | 餅圖 | Graph | 關(guān)系圖 |
Line | 折線/面積圖 | Liquid | 水球圖 |
Radar | 雷達(dá)圖 | Parallel | 平行坐標(biāo)系 |
Sankey | 桑基圖 | Polar | 極坐標(biāo)系 |
WordCloud | 詞云圖 | HeatMap | 熱力圖 |
2.0、初始化設(shè)置
導(dǎo)入相關(guān)庫:
- from pyecharts.charts import *
- import pyecharts.options as opts
- from pyecharts.charts import *: 可以使用所有的圖表對應(yīng)的函數(shù);
- 使用 options 配置項(xiàng),在 pyecharts 中,一切皆 Options,進(jìn)行參數(shù)設(shè)置;
總體說明一下:
- .render_notebook ()隨時(shí)隨地渲染圖表;
- .render() 這個(gè)不會(huì)直接產(chǎn)生圖表,而是形成一個(gè)render.html的文件,可在瀏覽器中打開查看圖表;
2.1、scatter()
這里我們繪制一個(gè)正余弦的散點(diǎn)圖
- x = np.linspace(0, 2*np.pi, 100)
- y = np.sin(x)
- y2 = np.cos(x)
- # 參數(shù)設(shè)置
- (Scatter() # 圖形種類
- .add_xaxis(xaxis_data=x) # 設(shè)置x軸序列
- .add_yaxis(series_name='sin', y_axis=y) # 設(shè)置y軸序列
- .add_yaxis(series_name='cos', y_axis=y2, label_opts=opts.LabelOpts(is_show=False)) # is_show = False:表示不顯示數(shù)值部分
- ).render_notebook()
結(jié)果如下:
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()
結(jié)果如下所示:
2.3、Bar()
柱狀圖的繪制:
- from pyecharts.charts import Bar
- bar = (
- Bar()
- .add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
- .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
- )
- bar.render_notebook()
結(jié)果如下:
當(dāng)然,這里只是最基本的柱圖使用;我們還可以繪制混合柱圖;
- 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='各商家擁有犬類數(shù)量情況', subtitle='如有雷同,純屬意外')
- )
- ).render_notebook()
結(jié)果如下所示:
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()
結(jié)果如下:
環(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()
如圖所示:
三、總結(jié)
Pyecharts可以繪制各種各樣的圖表,主流的一個(gè)數(shù)據(jù)可視化的庫,因?yàn)橄鄬τ趍atplotlib,seaborn等數(shù)據(jù)可視化庫,它的交互性比較好,圖形繪制的比較清晰美觀,所以應(yīng)用的比較廣泛,本文主要就普通常用圖形做了簡單的總結(jié),當(dāng)然它還可以繪制地理圖形,具體參見官網(wǎng)相關(guān)API。
本文轉(zhuǎn)載自微信公眾號「IT共享之家」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系IT共享之家公眾號。