在前天的文章『用python制作动态图表看全球疫情变化趋势』中,由于篇幅原因,在数据处理与数据可视化相关内容上我们只是简单带过,那么我将以python小小白的角度去还原如何处理数据与数据可视化。本文为第二篇:pyecharts绘制时间轮播图。
时间线轮播多图
我们依旧以python小小白的角度去解析如何用pyecharts去制作时间线轮播多图。其实在之前我也并没有使用过这个功能,仅有一点的类似经验是之前项目在Echarts中实现过类似功能,所以第一步也是打开pyecharts官方文档。找到这部分的说明
那么官方给了那么一大堆文字说明,谁看都头疼,所以我们先运行一个demo看看
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Page, Pie, Timeline
def timeline_bar() -> Timeline:
x = Faker.choose()
tl = Timeline()
for i in range(2015, 2020):
bar = (
Bar()
.add_xaxis(x)
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts("某商店{}年营业额".format(i)))
)
tl.add(bar, "{}年".format(i))
return tl
那么其实我们需要制作的不管是面积图还是地图本质上和这个demo都是一样的,所以只要把这个demo研究透了即可。那么接下来带你看这个demo。
首先我们发现中间的柱状图其实和之前文章讲解的绘制方法完全一致
唯一不一样的是上面多了一些代码
tl = Timeline()
这样一句代码,所以我们回去check文档就能发现之所以能够轮播就是这句代码在生效,所以我们就大致搞明白了timeline的套路⬇️
那么接下来就有一个问题,数据怎么提供的,我们执行一下Faker.values()
当你执行完毕之后会发现,每次执行都会输出一个list,里面存了每一张图片的数据,所以我们也需要写一个函数,把所有的数据存储到一个list里面,然后每调用一次这个函数就会返回一次的数据,
def hs(c,k):
return c[k]
c = []
for i in range(len(date)):
a1 = data.loc[i:i].values.tolist()
a1 = a1[0]
a1.pop(0)
c.append(a1)
这样就将dataframe里的每一组数据保存为list然后再将这一堆list存到另一个list里面,每执行一次就返回list里面的一组数据,那么怎样控制第一次执行返回第一组数据第二次执行返回第二组数据呢?看到函数除了接收数据参数之外,还接受一个参数k,我们就使用这个k来控制顺序输出每组数据。
这样就能做出随着时间变化的饼图了,而其他图的制作方法也是完全一致
来和小伙伴们一起向上生长呀!
扫描下方二维码,添加小詹微信,可领取千元大礼包并申请加入 Python 学习交流群,群内仅供学术交流,日常互动,如果是想发推文、广告、砍价小程序的敬请绕道!一定记得备注「交流学习」,我会尽快通过好友申请哦!
????长按识别,添加微信
(添加人数较多,请耐心等待)
????长按识别,关注小詹
(扫码回复 1024 领取程序员大礼包)