Pyecharts绘制折线图全解析
目录
用pycharts绘制折线图
1、绘制折线图
2、批量绘制折线图
3、绘制看板组合
编辑4、y轴配置项-设置y轴最大值
编辑5、设置平滑折线图
6、配置背景颜色
总结
用pycharts绘制折线图
原始数据:
1、绘制折线图
绘制折线图一共有3个步骤:
1、从pyecharts.charts中导入Line模块。
2、使用line.add()添加x轴,y轴数据。
3、使用line.render()保存图表。
2、批量绘制折线图
由上篇博文我们知道由是10位博主,是不是我们要写10行代码?
资深程序员常说:“Don"t repeat yourself”,我们如何简化它呢?聪明的你肯定想到了函数
我们可以使用函数的方法来简化我们的代码。
在这里,我们可以定义一个函数,命名为 create_line(),参数为name,likes。
接下来,我们可以使用for循环来生成6位博主的点赞量折线图。
# 定义一个计数器n,初始值为0
n = 0
# 循环name_list列表,依次将博主name提取出来
for name in name_list:# 将create_line()函数赋值给line,参数为name,和列表likes_list中的第n项line = create_line(name, likes_list[n])# 将折线图保存到f"/Users/Yoyo/{n}.html"中line.render(f"/Users/Yoyo/{n}.html")# 计数器n加1n = n + 1
这样就能一次性生成6幅折线图。不过单独查看这些图表不太方便,接下来我们用看板将它们组合起来。
3、绘制看板组合
在pyecharts中,使用tab()模块,就可以将多张图表组合到一个看板中,实现点击切换图表的功能。在使用tab模块时,同样需要从pyecharts.charts中导入Tab模块。并创建一个组件Tab对象,赋值给变量tab。
tab对象通过tab.add()函数添加图表,添加的第一项是图表对象,第二项是选项卡名称。
再通过tab.render()函数保存图表,在render()中添加保存路径。
现在只需要遍历两个列表,依次创建折线图,再将折线图和博主名字依次添加进tab中就行啦。
现在点选不同的博主名字就可以显示他最近10篇笔记的阅读量。只看图片,以为这两位博主的阅读量相当,阅读趋势差距不大,然而实际上,一位博主的最高点赞量有12000,一位仅有3717。
这是一种很常见的数据陷阱
4、y轴配置项-设置y轴最大值
接下来使用y轴配置项来设置y轴最大值,观察一下6位博主的点赞数据,最高的点赞量不超过13000,我们可以将y轴最大值设置为13000。方法和设置x轴配置项非常类似。
1. 从pyecharts中导入options模块,简写为opts:
from pyecharts import options as opts
2. 使用set_global_opts进行y轴配置,初始化一个AxisOpts对象,设置最大值为13000:
line.set_global_opts(yaxis_opts=opts.AxisOpts(max_ = 13000))
运行一下结果,发现所有的折线图的y轴最大值变成了13000
5、设置平滑折线图
现在的折线图因为数据较多,跨度较大显得比较杂乱,变成平滑折线图会更加清晰直观。
在pyecharts中将折线图修改为平滑折线图只需要在line.add_yaxis中添加一个参数is_smooth=True即可。
6、配置背景颜色
pyecharts内置提供了10+种不同风格的主题,你可以根据想要的效果进行调试。接下来使用初始化配置项来设置主题。
我们先初始化一个InitOpts对象,设置主题theme="dark",并直接在折线图Line()对象中进行主ti置:line=Line(init_opts = opts.InitOpts(theme="dark"))
清爽:theme="light",暗色:theme="dark",白板:theme="chalk"
信息图:theme="infographic",马卡龙:theme="macarons",复古:theme="vintage"
罗曼蒂克:theme="romantic"你也可以参考官方文档
总结
以下是源代码:
from pyecharts.charts import Line,Tab
from pyecharts import options as opts
tab = Tab()
# 近10篇笔记的点赞量数据存入列表likes中
likes1 =[71,429,150,2214,626,1597,773,10000,1947,2275]
likes2 =[299,720,97,995,1010,12000,862,2588,1015,8522]
likes3 =[113,102,619,3465,531,1426,921,3717,2598,526]
likes4 =[421,392,680,938,2013,493,1624,1204,4955,2021]
likes5 =[151,376,60,3785,277,46,325,3212,143,566]
likes6 =[479,8355,933,3610,4073,606,1824,568,7981,632]
likes_list=[likes1,likes2,likes3,likes4,likes5,likes6]
# 将博主姓名存入列表name_list中
name_list = ["菠萝冰","Jeannie花","爱草莓","栀缘","钢琴上的音乐","行者"]
# 将最近10篇笔记的名字存入列表并赋值给变量page
page = ["近10篇","近9篇","近8篇","近7篇","近6篇","近5篇","近4篇","近3篇","近2篇","近1篇"]# 定义函数create_line(),获取博主名字name和点赞数likes,绘制折线图
def create_line(name,likes):#创建折线图Line对象,并赋值给变量lineline = Line(init_opts=opts.InitOpts(theme = "chalk"))line.add_xaxis(page)# 给折线图添加y轴数据,数据内容是点赞量列表:likes,图例名称为博主姓名:nameline.add_yaxis(series_name=name, y_axis=likes,is_smooth=True)line.set_global_opts(yaxis_opts=opts.AxisOpts(max_=13000),title_opts=opts.TitleOpts(title=name+"近10篇笔记的点赞数"))# 返回折线图return line
n=0
for name in name_list:line = create_line(name,likes_list[n])tab.add(line,name)n=n+1
tab.render(r"D:\pystudy\likes.html")
个人主页:初学者,亦行者⭐每日分享学习日常,每天进步一点点🚀 专栏亮点:零基础友好 | 实战案例丰富 | 循序渐进教学 | 代码详细注释💡 学习收获:掌握可视化入门技术,逐渐成为信息可视化高手🔥 如果觉得文章有帮助,别忘了点赞👍 收藏⭐ 关注🚀,你的支持是我创作的最大动力!