数据可视化:折线图

1.初看效果

(1)效果一

(2)数据来源


2.JSON数据格式

其实JSON数据在JAVA后期的学习过程中我已经是很了解了,基本上后端服务器和前端交互数据大多是采用JSON字符串的形式

(1)JSON的作用

(2)json的格式

(3)Python数据和JSON相互转化

代码示例

python 复制代码
"""
    演示Python与JSON数据之间的相互转换
"""
import json

# 准备列表,列表内每一个元素都是字典,将其转换为JSON
data = [
    {"name": "ggj", "age": 13},
    {"name": "lly", "age": 12},
    {"name": "lili", "age": 38}
]
json_str = json.dumps(data, ensure_ascii=False)
print(f"类型是:{type(json_str)}")
print(f"内容是:{json_str}")

# 准备字典,将字典转换为JSON
d = {"name": "llt", "addr": "GuYi"}
json_str = json.dumps(d, ensure_ascii=False)
print(f"类型是:{type(json_str)}")
print(f"内容是:{json_str}")

# 将JSON字符串转换为Python数据类型[{k:v,k:v},{k:v,k:v}]
s = '[{"name": "ggj", "age": 13}, {"name": "lly", "age": 12}, {"name": "lili", "age": 38}]'
list_dict = json.loads(s)
print(f"类型是:{type(list_dict)}")
print(f"内容是:{list_dict}")

# 将JSON字符串转换为Python数据类型{k:v, k:v}
s = '{"name": "llt", "addr": "GuYi"}'
dict_json = json.loads(s)
print(f"类型是:{type(dict_json)}")
print(f"内容是:{dict_json}")

其实Python相比于JAVA转化为JSON是非常非常非常非常的easy了,java转化为JSON甚至需要使用例如阿里提供的API,**fastJSON,**没法直接转换


3.pyecharts模块

链接:pyecharts - A Python Echarts Plotting Library built with love.

画廊:Graph - Graph_les_miserables - Document (pyecharts.org)

然后去cmd命令行下载安装就行啦

具体安装方法可看我的另一篇文章有涉及如下:

第一阶段第九章------异常,模块与包-CSDN博客


4.构建一个基础的折线图

(1)快速入门

代码示例

python 复制代码
"""
    02构建基础的折线图
"""
# 导包,导入Line 功能构建折线图对象
import pyecharts.charts as charts

# 得到折线图对象
line = charts.Line()
# 添加x轴数据
line.add_xaxis(["中国", "美国", "英国"])
# 添加y轴数据
line.add_yaxis("GDP", [30, 20, 10])
# 生成图标
line.render()

然后运行就会生成一个**.html**文件

然后将这个html 文件使用浏览器打开即可看见我们的图像,如下

(2)配置选项

1.全局配置选项
2.系列配置选项

这里先不过多阐述,后期文章会有更新

5.疫情折线图生成

代码示例

python 复制代码
"""
    演示可视化需求1,折线图开发
"""
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LabelOpts

# 数据处理 美国
f_usa = open("D:\\IOText\\DataDoing\\美国.txt", "r", encoding="UTF-8")
usa_data = f_usa.read()

f_jp = open("D:\\IOText\\DataDoing\\日本.txt", "r", encoding="UTF-8")
jp_data = f_jp.read()

f_idn = open("D:\\IOText\\DataDoing\\印度.txt", "r", encoding="UTF-8")
idn_data = f_idn.read()

# 去掉不含JSON规范的开头
usa_data = usa_data.replace("jsonp_1629344292311_69436(", "")
jp_data = jp_data.replace("jsonp_1629350871167_29498(", "")
idn_data = idn_data.replace("jsonp_1629350745930_63180(", "")

# 去掉不含JSON规范的结尾
usa_data = usa_data[:-2]
jp_data = jp_data[:-2]
idn_data = idn_data[:-2]

# JSON转字典
usa_dict = json.loads(usa_data)
jp_dict = json.loads(jp_data)
idn_dict = json.loads(idn_data)

# 获取trend key
usa_trend_data = usa_dict['data'][0]["trend"]
jp_trend_data = jp_dict['data'][0]["trend"]
idn_trend_data = idn_dict['data'][0]["trend"]

# 获取日期数据,用于x轴,取2020年(到314下标结束)
usa_x_data = usa_trend_data["updateDate"][:314]
jp_x_data = jp_trend_data["updateDate"][:314]
idn_x_data = idn_trend_data["updateDate"][:314]

# 获取确认数据,用于y轴,去2020年(到314下标结束)
usa_y_data = usa_trend_data["list"][0]["data"][:314]
jp_y_data = jp_trend_data["list"][0]["data"][:314]
idn_y_data = idn_trend_data["list"][0]["data"][:314]

# 生成图表
# 构建折线图对象
line = Line()

# 添加x轴数据,因为三个国家的x轴数据都是一样的所以用哪个无所谓
line.add_xaxis(usa_x_data)
# 添加y轴数据
line.add_yaxis("美国确诊人数", usa_y_data, label_opts=LabelOpts(is_show=False))
line.add_yaxis("日本确诊人数", jp_y_data, label_opts=LabelOpts(is_show=False))
line.add_yaxis("印度确诊人数", idn_y_data, label_opts=LabelOpts(is_show=False))

# 设置全局选项
line.set_global_opts(
    title_opts=TitleOpts(title="2020年美日印三国确诊折线图", pos_left="center", pos_bottom="1%")
)
# 生成图标
line.render()

# 关闭文件对象
f_usa.close()
f_jp.close()
f_idn.close()

生成的图表示例

结语

不难不难真的好简单,Python的处理方式真的是太easy了

但是对于并不了解JSON的伙伴来说可能还是有点烦躁吧,多看几遍就好了

好了,再见ヾ( ̄▽ ̄)Bye~Bye~

相关推荐
Python大数据分析@几秒前
Claude Code、Cursor、Trae、OpenCode怎么选?
python
q_35488851533 分钟前
机器学习:python共享单车数据分析系统 可视化 Flask框架 单车数据 骑行数据 大数据 机器学习 计算机毕业设计✅
人工智能·python·机器学习·数据分析·flask·推荐算法·共享单车
小北方城市网6 分钟前
接口性能优化实战:从秒级到毫秒级
java·spring boot·redis·后端·python·性能优化
人工智能AI技术8 分钟前
【Agent从入门到实践】22 LLM的局限性:Agent开发中需要规避的坑
人工智能·python
小北方城市网8 分钟前
Redis 缓存设计与避坑实战:解决穿透 / 击穿 / 雪崩
java·大数据·数据库·redis·python·elasticsearch·缓存
喵手8 分钟前
Python爬虫零基础入门【第一章:开篇与准备·第2节】环境搭建:Python/虚拟环境/依赖/抓包工具一次搞定!
爬虫·python·抓包工具·python爬虫实战·环境准备·python环境配置·python爬虫工程化实战
小二·8 分钟前
Python Web 开发进阶实战:神经符号系统 —— 在 Flask + Vue 中融合深度学习与知识图谱
前端·python·flask
Goona_10 分钟前
PyQt+Excel学生信息管理系统,增删改查全开源
python·小程序·自动化·excel·交互·pyqt
叫我辉哥e111 分钟前
新手进阶Python:办公看板集成OA自动化+AI提醒+定时任务
人工智能·python·自动化
新诺韦尔API23 分钟前
车架号查询接口对接全流程详解
大数据·开发语言·python·api