当前位置: 首页 > news >正文

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")

个人主页:初学者,亦行者⭐每日分享学习日常,每天进步一点点🚀 专栏亮点:零基础友好 | 实战案例丰富 | 循序渐进教学 | 代码详细注释💡 学习收获:掌握可视化入门技术,逐渐成为信息可视化高手🔥 如果觉得文章有帮助,别忘了点赞👍 收藏⭐ 关注🚀,你的支持是我创作的最大动力!

 

http://www.lryc.cn/news/617470.html

相关文章:

  • 区间修改 - 差分
  • 大模型中的反向传播是什么
  • 网络编程~
  • 【13-向量化-高效计算】
  • 《番外:Veda的备份,在某个未联网的旧服务器中苏醒……》
  • 飞算 JavaAI 智能进阶:从技术工具到金融科技开发范式的革新
  • 文件操作:fgets与gets区别+fread/fwrite +流定位接口
  • 【图像处理基石】PCA图像压缩与还原:基于OpenCV的Lena图实验
  • 2025 算法面试试题-阿里面试题分析
  • 【算法专题训练】11、字符串中的变位词
  • PyTorch基础(使用Tensor及Antograd实现机器学习)
  • GraalVM !拥抱云原生的 JVM
  • foreach 块并行加速
  • docker compose和docker-compose命令的区别
  • 力扣164:最大间距
  • 大数据系统架构模式:驾驭海量数据的工程范式
  • React(四):事件总线、setState的细节、PureComponent、ref
  • LeetCode 2438.二的幂数组中查询范围内的乘积:模拟(前缀和可选)
  • C++项目实战(日期类的实现)
  • MFC C++ 使用ODBC方式调用Oracle数据库的详细步骤
  • 重学React(五):脱围机制一
  • 金蝶云星辰:赋能企业数据管理
  • spring boot 整合redis教程
  • 带简易后台管理的米表系统 域名出售系统 自适应页面
  • 帝国理工学院团队研发:Missense3D-PTMdb—— 解析遗传变异与翻译后修饰的交互式工具
  • 计算机网络---交换机
  • 套接字技术、视频加载技术、断点续传技术
  • Horse3D引擎研发笔记(四):在QtOpenGL下仿three.js,封装EBO绘制四边形
  • 2025 年国内可用 Docker 镜像加速器地址
  • Rust面试题及详细答案120道(19-26)-- 所有权与借用