写【Python折线图】的一百个技巧(一、生成折线图网页)
前言
本系列文章主要针对Python语言【pyecharts】库生成折线图功能进行深入探究与二次开发而撰写的,专栏文章的作用是帮助大家在工作中【快速】、【高效】、【美观】、【大气】的展示各种适合【折线图】的数据,且只针对折线图,我相信折线图才是最美的图表,在折线图中你能找到真正的数学之美,当前只针对生成网页类型可以截图使用,也可以通过录制操作过程生成小视频的方式使用,后期我会想办法针对视频自动演示进行研究,可能前几十篇或甚至是上百篇文章都是对折线图的具体探究与深度学习,后面的文章我会写一些功能类的GUI工具,用于生成各类折线图,有望在2024年的年会PPT汇报上给予大家【唯美】的帮助。
学习环境
系统环境:win11
开发工具:PyCharm Community Edition 2022.3.1
Python版本:Python 3.9.6
Pythob库:主要是【pyecharts】,如果涉及到网络获取则需要依赖爬虫的库,可参考【看完这个,还不会【Python爬虫环境】,请你吃瓜】
Python库环境
下载【pyecharts】库。
探究目标
pyecharts基础折线图的使用。
绘制过程
引入库
这个就是我们最开始下载的库,由于下载过了,我使用的是系统的路径,故而直接用就行了。
from pyecharts.charts import Bar, Page, Line from pyecharts import options as opts
初始化数据
这里要初始的是X轴与Y轴的数据,Y轴我设定了3个用户故而我写了三条数据,写1个也行,就是显示的时候是一条线而已,我用三条线看着更带劲而已,可以依葫芦画瓢的跟着我写数据就行,其实这个数据都是可以自己随意写的呢,如果不好看,自己换数据也就成了。
# X轴数据 x = ['10月份', '11月份', '12月份'] # Y轴数据 y1 = [1120, 520, 770] y2 = [1000, 300, 800] y3 = [1072, 500, 900]
声明折线图
声明折线图就是这个函数,但是我们不能单单的写函数,我们还需要拿到一个返回值用来操作数据的信息,所以这里我们用变量【c】来承接这个折线图。
c = Line()
写入x轴数据
写入x轴数据需要根据我们声明的折线图变量c来写入,函数是add_xaxis(),参数名称是xaxis_data,直接赋值我们准备好的x列表就行。
# 设置x轴 c.add_xaxis(xaxis_data=x)
写入y轴数据
其实Y轴也与x轴类似,但是你能看得出来这里是add_yaxis,他自己已经说明自己是y了,故而也是安装的,直接操作即可,serise_name设置的是显示文字,后面的y_axis是设置对应折线的数据变量,这里有3个。
# 设置y轴 c.add_yaxis(series_name='博主A', y_axis=y1) c.add_yaxis(series_name='博主B', y_axis=y2) c.add_yaxis(series_name='博主C', y_axis=y3)
基础设置
这里需要设置折线图的标题、是否显示、鼠标悬停以及显示工具箱。
# 数据项设置 c.set_global_opts( title_opts=opts.TitleOpts(title='博主年末后三个月原力增长数量'), legend_opts=opts.LegendOpts(is_show=True), tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'), toolbox_opts=opts.ToolboxOpts(is_show=True, orient='horizontal', feature=opts.ToolBoxFeatureOpts(data_zoom=data_zoom)) )
工具包设置
在工具包设置的时候会有对data_zoom的需求,我们直接赋值即可。
# 对工具箱中名称修改 data_zoom = { "show": True, "title": {"缩放": "数据缩放", "还原": "缩放数据还原"} }
封装折线图函数
这里我讲整个过程封装成了一个函数,后期准备直接当做基础包来用,参数直接修改一下或者通过json等方式进行获取即可。
def line_charts(): c = Line() # 设置x轴 c.add_xaxis(xaxis_data=x) # 设置y轴 c.add_yaxis(series_name='博主A', y_axis=y1) c.add_yaxis(series_name='博主B', y_axis=y2) c.add_yaxis(series_name='博主C', y_axis=y3) # 数据项设置 c.set_global_opts( title_opts=opts.TitleOpts(title='博主年末后三个月原力增长数量'), legend_opts=opts.LegendOpts(is_show=True), tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'), toolbox_opts=opts.ToolboxOpts(is_show=True, orient='horizontal', feature=opts.ToolBoxFeatureOpts(data_zoom=data_zoom)) ) return c
绘制表格
我们直接调用函数,先让函数跑一遍赋值好数据,相当于初始化完毕,初始化后我们需要将生成的HTML网页保存到一定的位置下,我这里就直接写当前文件夹了。
# 绘制图表 c = line_charts() c.render(path='Demo1_base_lineChart.html')
执行测试效果
已经生成成功的HTML网页:
查看生成网页:
工具栏介绍
工具栏中的功能非常多,甚至可以直接更换显示效果。
这里面第一个是下载图片,第一排最后一个是折线图拉伸的效果,还有第二排第一是显示柱状图,我们来点一下看看。
除了柱状图外,我们还能直接创建对应的自动求和的堆叠图,效果如下:
总结
这是一个基础版本的折线图,并没有进行大数据量的分析也没有添加什么好看的样式,只是作为一切的基础来学习,后面我们对折线图一点点的深入挖掘,将数据显示的越发美观且高大上,希望在这个方向上能给大家带来更多的价值。