zl程序教程

您现在的位置是:首页 >  Python

当前栏目

画【Python折线图】的一百个学习报告(三、自动生成单一数据折线图)

2023-02-26 09:50:23 时间

画【Python折线图】的一百个学习报告(三、自动生成单一数据折线图)


目录

画【Python折线图】的一百个学习报告(三、自动生成单一数据折线图)

前言

学习环境

探究目标

分析过程

实践过程

成果展示

总结


前言

        本系列文章主要针对Python语言【pyecharts】库生成折线图功能进行深入探究与二次开发而撰写的,专栏文章的作用是帮助大家在工作中【快速】、【高效】、【美观】、【大气】的展示各种适合【折线图】的数据,且只针对折线图,我相信折线图才是最美的图表,在折线图中你能找到真正的数学之美,当前只针对生成网页类型可以截图使用,也可以通过录制操作过程生成小视频的方式使用,后期我会想办法针对视频自动演示进行研究,可能前几十篇或甚至是上百篇文章都是对折线图的具体探究与深度学习,后面的文章我会写一些功能类的GUI工具,用于生成各类折线图,有望在2024年的年会PPT汇报上给予大家【唯美】的帮助。

学习环境

系统环境:win11 开发工具:PyCharm Community Edition 2022.3.1 Python版本:Python 3.9.6 Pythob库:主要是【pyecharts】,如果涉及到网络获取则需要依赖爬虫的库,可参考【看完这个,还不会【Python爬虫环境】,请你吃瓜

探究目标

根据给与的txt文件的名称、第一列对应的x值与第二列对应的y值,三个参数生成对应的折线图,这是第一个示例,后面我们会添加Excel,json等文件的直接解析。

分析过程

我们先准备好对应的【pyecharts】的环境,有了环境后我们先读取这个文件有了这个文件后我们就可以根据这个文件来生成数据,注意我们获取文件的标准要求。

1、txt文件类型 2、折线图名称就是txt文件的前缀名称 3、两列数据,中间使用【 】空格进行分割,第一列是x轴数据(名称),第二列是y轴数据(数据)

有了这三个数据,我们根据这三个数据进行编排,直接编辑到对应的数据集当中,进行显示的一些设置后,最终进行数据显示。对应生成的HTML文件就是我们的最终结果。

实践过程

环境准备:

pip install pyeharts

我们先手动选择这个文件,后面我们再写一篇自带GUI操作的工具。

编码过程:

from pyecharts.charts import Bar, Page, Line
from pyecharts import options as opts

自定义函数:

def line_charts(x, y, title):
    """生成文件"""
    c = Line()

    # 对工具箱中名称修改
    data_zoom = {
        "show": True,
        "title": {"缩放": "数据缩放", "还原": "缩放数据还原"}
    }

    # 设置x轴
    c.add_xaxis(xaxis_data=x)
    # 设置y轴
    c.add_yaxis(series_name=title, y_axis=y)

    # 数据项设置
    c.set_global_opts(
        title_opts=opts.TitleOpts(title=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))
    )

    # 绘制图表
    c.render(path="{0}.html".format(title))

获取数据并使用函数:

x = []
y = []
title = "近5个星期的浏览量"
with open("{0}.txt".format(title), "r+", encoding="UTF-8") as fileTxt:
    lines = fileTxt.readlines()
    for item in lines:
        if len(item) > 1:
            list_line = item.split(" ")
            x.append(list_line[0])
            y.append(int(list_line[1]))

line_charts(x, y, title)

成果展示

获取数据后,我们直接遍历获取结果输出即可。

总结

使用的难度不大,就是遍历数据比较麻烦,我后面会使用GUI来构建一个页面来支持直接文件上传,这样效果会高处很多的,可以分文件类型进行处理。

专栏地址:【https://blog.csdn.net/feng8403000/category_12170925.html