Python 折线图的开发

在学习折线图之前我们先普及一下前置知识-json数据格式: JSON是一种轻量级的数据交互格式,可以按照JSON指定的格式去组织和封装数据。JSON在本质上是一个带有特定格式的字符串。它负责了不同编程语言中的数据传递和互交。JSON有什么用呢?JSON就是一种非常好的中转数据格式,它可以让不同的语言互相传递数据。 列如: Screenshot_20231102_212141_edit_586738326049356.jpg 以上图片就给我们展示了Python语言和C语言通过JSON格式数据实现互相传递数据的。 json的格式数据转化:json格式的数据要求很严格的,如以下格式:

# json数据的格式可以是:
{"name":"admin","age":18}
# 也可以是:
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"hello","age":20}]


从上面的代码中我们可以看出json数据格式要么是字典要么是列表内嵌套了字典。说白了json它其实就是一个Python的列表或者是一个Python的字典,json就是把Python中的字典和列表转化为字符串。那么如何实现Python和json数据的相互转换呢?我们通过以下代码来展示:(使用Python内置的json模块中的json.dumps(data)和json.dumps(data)来实现数据的转化)

# 导入json模块
import json
# 准备符合格式json格式要求的Python数据
data = [{"name":"小白","age":16},{"name":"小蓝","age":15}]
# 通过json.dumps(data)把Python数据转化为了json数据
data = json.dumps(data,ensure_ascii=False)    #通过使用ensure_ascii参数并把它设置为False,表明不使用ASCII来去转换它进而显示data中的中文,而不是字符。
# 通过json.dumps(data)的方法把json数据转化为了python数据
data = json.loads(data)


接着是pyecharts模块:pyecharts模块是可以帮助我们做出数据可视化效果图的。Echar是个由百度开源的数据可视化,具有良好的互交性和精巧的图表设计;而Python是门富有表达力的的语言,很适合用于数据处理,当两者结合时pyecharts就出现了。因此可视化图表就是基于pyechars模块去构建的。pyechars是由百度团队所构建的,因此它具有很丰富的中文文档。它的官方网站是pyechars.org里面具有很多图标,然后打开一个网站(gallery.pyecharts.org/)这是pyechars…%25E8%25BF%2599%25E6%2598%25AFpyechars%25E6%2589%2580%25E4%25BD%25BF%25E7%2594%25A8%25E7%259A%2584%25E4%25B8%2580%25E4%25B8%25AA%25E7%2594%25BB%25E5%25BB%258A%25EF%25BC%258C%25E5%259C%25A8%25E7%2594%25BB%25E5%25BB%258A%25E9%2587%258C%25E6%2588%2591%25E4%25BB%25AC%25E5%258F%25AF%25E4%25BB%25A5%25E6%2589%25BE%25E5%2588%25B0%25E5%2590%2584%25E7%25A7%258D%25E5%259B%25BE%25E8%25A1%25A8%25E5%25B9%25B6%25E6%259F%25A5%25E7%259C%258B%25E5%25AE%2583%25E4%25BB%25AC%25E7%259A%2584%25E5%25AE%259E%25E7%258E%25B0%25E4%25BB%25A3%25E7%25A0%2581%25E3%2580%2582%25E5%25A6%2582%25E4%25B8%258B%25E9%259D%25A2%25E7%259A%2584%25E6%258A%2598%25E7%25BA%25BF%25E5%259B%25BE%25E7%259A%2584%25E4%25BB%25A3%25E7%25A0%2581%25E5%2592%258C%25E5%259B%25BE%25EF%25BC%259A “https://gallery.pyecharts.org/)%E8%BF%99%E6%98%AFpyechars%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E4%B8%80%E4%B8%AA%E7%94%BB%E5%BB%8A%EF%BC%8C%E5%9C%A8%E7%94%BB%E5%BB%8A%E9%87%8C%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0%E5%90%84%E7%A7%8D%E5%9B%BE%E8%A1%A8%E5%B9%B6%E6%9F%A5%E7%9C%8B%E5%AE%83%E4%BB%AC%E7%9A%84%E5%AE%9E%E7%8E%B0%E4%BB%A3%E7%A0%81%E3%80%82%E5%A6%82%E4%B8%8B%E9%9D%A2%E7%9A%84%E6%8A%98%E7%BA%BF%E5%9B%BE%E7%9A%84%E4%BB%A3%E7%A0%81%E5%92%8C%E5%9B%BE%EF%BC%9A”)

from pyecharts.charts import Line

"""
Gallery 使用 pyecharts 1.1.0
参考地址: https://echarts.apache.org/examples/editor.html?c=line-marker

目前无法实现的功能:

1、最低气温的最高值暂时无法和 Echarts 的示例完全复刻
"""

week_name_list = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
high_temperature = [11, 11, 15, 13, 12, 13, 10]
low_temperature = [1, -2, 2, 5, 3, 2, 0]


(
    Line()
    .add_xaxis(xaxis_data=week_name_list)
    .add_yaxis(
        series_name="最高气温",
        y_axis=high_temperature,
        markpoint_opts=opts.MarkPointOpts(
            data=[
                opts.MarkPointItem(type_="max", name="最大值"),
                opts.MarkPointItem(type_="min", name="最小值"),
            ]
        ),
        markline_opts=opts.MarkLineOpts(
            data=[opts.MarkLineItem(type_="average", name="平均值")]
        ),
    )
    .add_yaxis(
        series_name="最低气温",
        y_axis=low_temperature,
        markpoint_opts=opts.MarkPointOpts(
            data=[opts.MarkPointItem(value=-2, name="周最低", x=1, y=-1.5)]
        ),
        markline_opts=opts.MarkLineOpts(
            data=[
                opts.MarkLineItem(type_="average", name="平均值"),
                opts.MarkLineItem(symbol="none", x="90%", y="max"),
                opts.MarkLineItem(symbol="circle", type_="max", name="最高点"),
            ]
        ),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="未来一周气温变化", subtitle="纯属虚构"),
        tooltip_opts=opts.TooltipOpts(trigger="axis"),
        toolbox_opts=opts.ToolboxOpts(is_show=True),
        xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),
    )
    .render("temperature_change_line_chart.html")
)

image.png 那我们如何安装pyecharts包呢?可以打开windows找到命令提示符,然后通过pip命令(pip install pyecharts)安装好了之后输入Python进入到Python的解释器环境中输入import导入pyecharts模块,如果没有出现问题就可以使用pyechars第三方包了。

接下来是构造基础折线图:

# 导包,导入line功能构建折线图对象
from pyecharts.charts import Line
# 得到折线图对象
line = Line()
# 添加x轴数据
line.add_yaxis(["中国","美国","英国"])
# 添加y轴数据
line.add_yaxis("GDP",[30,20,10])
# 生成图表
line.render()

image.png 从代码中我们可以知道要构建一个基础的折线图我们首先要导入包得到折线图对象然后在添加x和y轴的数据最后生成图表就可以了。 当我们运行的时候运行结果并没有出现图表,而是出现了一个文件(render.html),打开该文件点击右上角选择一个浏览器打开就能得到图表了。

pyecharts有很多的配置选项,常用的有两个:全局配置选项和系列配置选项。全局配置选项可以通过set_global_opts方法来配置,相应的选项和功能如下表:

Screenshot_20231104_151440_edit_676526982395785.jpg 下面通过代码来去简单的演示一下:

from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts

# 得到折线图对象
line = Line()
# 添加x轴数据
line.add_xaxis(["中国", "美国", "英国"])
# 添加y轴数据
line.add_yaxis("GDP", [30, 20, 10])
# 生成图表
line.render()
# 设置全职配置项set_global_opts来设置
is_show=True
line.set_global_opts(
# 标题的配置(把标题“GDP展示”放在中间最下面距离是%1    
    title_opts=TitleOpts(title="GDP展示",pos_left="cente", pos_bottom="1%"),
    legend_opts=LegendOpts(is_show=True),   # 比例的显示
    toolbox_opts=ToolboxOpts(is_show=True),     # 工具包的配置
    visualmap_opts=VisualMapOpts(is_show=True),     # 视觉的配置
)
line.render()

结果图:

image.png 通过与上图对比我们可以发现新图表增加了标题,比列和工具。

接下来是数据的处理:我们是通过json模块去处理数据的。打开懒人工具网站找到json数据打开就可以查看数据了(数据以字典形式存在)。首先从文件中取出我们需要的数据,然后去掉不和json模范的开头和结尾,再把json数据转化为Python字典,接着把数据分别放到x和y轴上去,最后生成图表即可。

以上就是创建折线图的基本方法了。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值