Python数据可视化-折线图综合案例

本文介绍了如何使用Python的pyecharts库对印度、美国和日本的COVID-19确诊人数数据进行处理,并通过折线图的形式展示对比。作者提供了代码示例,展示了如何读取CSV数据,清洗并转换为JSON格式,以及如何配置pyecharts的全局选项和图表细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求:

对印度美国日本三个国家确诊人数进行可视化处理,形成了可视化的确诊人数报告。

折线图所用的数据:https://pan.baidu.com/s/11nsgMztT9eYQxOEL4_korw?pwd=1234


JSON在线视图查看器(Online JSON Viewer):https://www.bejson.com/jsonviewernew/


pyecharts包的全局配置项:https://pyecharts.org/#/zh-cn/global_options

# 坐标轴标签配置项,参考 `series_options.LabelOpts`
axislabel_opts: Union[LabelOpts, dict, None] = None,
pyecharts包折线图的可视化案例:https://gallery.pyecharts.org/#/Line/README

代码:

import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts

# 打开
f_usa = open(r"D:\Downloads\第1-12章资料\3可视化案例数据\折线图数据\美国.txt", "r", encoding="UTF-8")
usa_data = f_usa.read()   # 美国(USA)的数据

f_jpn = open(r"D:\Downloads\第1-12章资料\3可视化案例数据\折线图数据\日本.txt", "r", encoding="UTF-8")
jpn_data = f_jpn.read()   # 日本(JPN)的数据

f_ind = open(r"D:\Downloads\第1-12章资料\3可视化案例数据\折线图数据\印度.txt", "r", encoding="UTF-8")
ind_data = f_ind.read()   # 印度(IND)的数据

# 去掉txt中不合JSON规范的开头
usa_data = usa_data.replace("jsonp_1629344292311_69436(", "")
jpn_data = jpn_data.replace("jsonp_1629350871167_29498(", "")
ind_data = ind_data.replace("jsonp_1629350745930_63180(", "")

# 去掉txt不合JSON规范的结尾
usa_data = usa_data.strip(");")
jpn_data = jpn_data.strip(");")
ind_data = ind_data.strip(");")

# JSON转Python字典
usa_dict = json.loads(usa_data)
jpn_dict = json.loads(jpn_data)
ind_dict = json.loads(ind_data)

# 获取trend key(trend底下就是updateDate和list)
usa_trend_data = usa_dict['data'][0]['trend']
jpn_trend_data = jpn_dict['data'][0]['trend']
ind_trend_data = ind_dict['data'][0]['trend']

# 获取日期数据,用于x轴,取2020年(到314下标结束)
usa_x_data = usa_trend_data['updateDate'][:314]
jpn_x_data = jpn_trend_data['updateDate'][:314]
ind_x_data = ind_trend_data['updateDate'][:314]

# 获取确认数据,用于y轴,取2020年(到314下标结束)
usa_y_data = usa_trend_data['list'][0]['data'][:314]
jpn_y_data = jpn_trend_data['list'][0]['data'][:314]
ind_y_data = ind_trend_data['list'][0]['data'][:314]

# 生成图表
zhexiantu = Line()
# 添加x轴数据
zhexiantu.add_xaxis(usa_x_data)   # x轴是公用的,所以使用一个国家的数据即可
# 添加y轴数据,关闭每个数据点的数值显示“label_opts”
zhexiantu.add_yaxis("美国确诊人数", usa_y_data, label_opts=LabelOpts(is_show=False))
zhexiantu.add_yaxis("日本确诊人数", jpn_y_data, label_opts=LabelOpts(is_show=False))
zhexiantu.add_yaxis("印度确诊人数", ind_y_data, label_opts=LabelOpts(is_show=False))

# 设置全局选项(增加图表中的内容)
zhexiantu.set_global_opts(
    # 标题设置
    title_opts=TitleOpts(title="2020年美日印三国确诊人数对比折线图", pos_left="center", pos_bottom="1%")
)

# 调用render方法,生成图表
zhexiantu.render()

# 关闭
f_usa.close()
f_jpn.close()
f_ind.close()
输出效果:


视频来源:第十章-06-生成折线图 作者:矢来美羽MIUYARAI https://www.bilibili.com/read/cv24852872/ 出处:bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值