作为Python可视化多个轮子中的Pyecharts在版本升级到 v1.0及以上后和以前的区别还是蛮大的
其中就有一个是在引用包的时候
我发现网上好多都是v1.0以前的引用方式,当然在我们默认的python3.6+中会报错
本人使用的是Python3.7和Pychearts 1.3,本文都是在此基础下操作的
具体的版本使用区别,可以戳此处查看官网信息,或者直接戳此处直接说明查看新版使用
首先在引用时就有如下区别
# v1.0+引用方式
from example.commons import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line
# v1.0以下引用方式
from example.commons import Faker
from pyecharts import options as opts
from pyecharts import Bar, Grid, Line
以下是官方在新版本中新增的链式调用写法示例,个人感觉更清晰明了,尤其是在制作多个图表时,推荐使用
from pyecharts.charts import Bar
from pyecharts import options as opts
# V1 版本开始支持链式调用
bar = (
Bar()
.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
.set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
)
bar.render()
# 不习惯链式调用的开发者依旧可以单独调用方法
bar = Bar()
bar.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
bar.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
bar.set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
bar.render()
在matplotlib中我们可以使用 subplot 或者和 gridspec 组合使用设置子图
而在pyecharts中可以用 grid 来把做好的bar或者pie图添加到 grid 中从而把多个图添加到同一个中
直接使用官方数据举例子,上代码
def grid_vertical():
bar = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar"))
)
line = (
Line()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="Grid-Line", pos_top="35%")
)
)
# 把上面生成的两个图放进grid中并通过pos_top,pos_bottom, pos_left, pos_right设置其位置
grid = (
Grid()
.add(bar, grid_opts=opts.GridOpts(pos_top='5%', pos_bottom="50%", pos_right='50%'))
.add(line, grid_opts=opts.GridOpts(pos_top='55%'))
)
# 生成到本地网页形式打开,也可自己设置保存成png图片,因为网页的使用更方便,自己按情况使用
grid.render('2.html')
设置位置时候主要用到的就是 pos_top,pos_bottom, pos_left, pos_right来设置
设置参数值的时候,个人喜欢把它叫做向某个方向缩进百分之多少,感觉比较贴切好记
我的第一个图设置的可以理解为把柱状图从上往下缩进5%,从下往上缩进50%,从右往左缩进50%
第二个图则是只从上往下缩进55%,中间留出一点显示会比较好看
比较简陋,单纯展示下如何切分空间来添加子图,也可以根据设置参数添加更多的图进去
有需要也可以看看官方示例文档更多的设置例子