Pyecharts绘图API总结

IT共享之家

共 4372字,需浏览 9分钟

 ·

2021-11-28 16:48

点击上方“IT共享之家”,进行关注

回复“资料”可获赠Python学习福利

禁门宫树月痕过,媚眼惟看宿鹭窠。

一、初识Pyecharts

pyecharts简介

pyecharts 是一个用于生成 Echarts 图表的类库, Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 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桑基图Polar极坐标系
WordCloud词云图HeatMap热力图

这里我们简介一下常用的图表的API:

2.0、初始化设置

导入相关库:

from pyecharts.charts import *import pyecharts.options as opts
  • from pyecharts.charts import *: 可以使用所有的图表对应的函数;

  • 使用 options 配置项,在 pyecharts 中,一切皆 Options,进行参数设置;

总体说明一下:

  1. .render_notebook ()随时随地渲染图表;

  2. .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 Lineimport 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 Barimport 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 Pieimport 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()

结果如下:


环状饼图:

from pyecharts.charts import Pieimport 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 Pieimport 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共享之家

入群请在微信后台回复【入群】

------------------- End -------------------

往期精彩文章推荐:

浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报