前言
或许有人会问,说我之前Pyecharts代码不能用了,我自己尝试了一下,还是可以用的,后面才发现是因为现在pyecharts更新了,这个是pyecharts官网的原话(pyecharts 分为 v0.5.X 和 v1 两个大版本,v0.5.X 和 v1 间不兼容,v1 是一个全新的版本)。
版本 0.5 已经不再维护,而新版本 V1 是不向下兼容的。
代码风格完全不同,在 V1 版本中,一切皆Options。配置项种类更多,可操作性更强,可以画出更加丰富的图表。
因此,我们完全可以将新版本当作一个新库来学习使用。
所以说,如果你安装的是v1版本的pyecharts,那我之前的代码都是不能用了,其实pyecharts的官方文档写的很详细(https://pyecharts.org/),但为了各位更好的理解新版本,那本次内容就讲解下新版本pyecharts可视化代码。
一个非常经典的?,绘制条形图
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.render()
导入包的方式也发生了变化,各种图表类型集成在 charts 中。同时 V1 也支持链式调用如下,
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)
bar.render()
通过使用options配置项,可以修改各种配置项参数,还可以使用渲染成图片文件。
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
make_snapshot(snapshot, bar.render(), "bar.png")
另外,需要特别强调的一点是「数据格式」的问题。pyecharts本质上在做的事情就是将 Echarts 的配置项由 Python dict 序列化为 JSON 格式,所以 pyecharts 支持什么格式的数据类型取决于 JSON 支持什么数据类型。
简单来说,我们需要自己将绘制成图像的数据的格式转换成Python原生的数据格式。我们可以利用Series.tolist()来转换,或者利用列表生成式来转换。
# for int
[int(x) for x in your_numpy_array_or_something_else]
# for str
[str(x) for x in your_numpy_array_or_something_else]
我们以好友信息为例
小试牛刀
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.render_notebook()
导入的时候需要为pyecharts.charts
添加数据也变了
显示用render_notebook()
好友性别信息可视化
我们看看好友性别的分布,首先通过groupby统计。
sex = data.groupby('Sex')['Sex'].count()
新版的增加了链式调用。我们按照官方文档,绘制一个饼图。
from pyecharts.charts import Pie
label = ['外星人','男性','女性']
c = (
Pie()
.add("", [(a,b) for a,b in zip(label,sex)])
)
c.render()
还有其他设置,大家看官方文档就好了。
如果还是习惯用以前的版本,那就用下面代码进行安装:
pip install pyecharts==0.5.11
今天的分享就到这了,我们下期再见~