Python折线图

发布于:2025-07-28 ⋅ 阅读:(16) ⋅ 点赞:(0)

1.数据可视化——折线图

1.1 json数据格式

是一种轻量级数据交互格式,可以按照JSON指定的格式组织和封装数据。
本质上是一个带有特定格式的字符串。
是不同语言之间的中转站。
在这里插入图片描述

1.2 Python数据和Json数据的相互转化

import json

data = [{"name":"张大山","age":11},{"name":"王大锤","age":13},{"name":"赵啸虎","age":16}]
json_str = json.dumps(data, ensure_ascii=False)
print(json_str)
print(type(json_str))
  1. 通过json.dumps(data)方法将Python数据转化为json数据data = json.dumps(data)
    若有中文,则可以带上ensure_ascii=False却把送中文正常转换。
  2. 通过json.loads(data)方法将json数据转化为python列表或字典。

1.3 pyecharts模块

官方网站:pyecharts.org
画廊官方网站:gallery.pyecharts.org
画廊网站有许多图表,可供使用者使用。

1.3.1 构建基础折线图

# 导包,导入Line功能构建折线图对象
from pyecharts.charts import Line

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

1.3.2 pyecharts配置选项

  1. 全局配置
    通过set_global_opts方法配置。
# 导包,导入Line功能构建折线图对象
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.set_global_opts(
    title_opts = TitleOpts(title="GDP展示",pos_left="center",pos_bottom="1%"),    # 标题
    legend_opts = LegendOpts(is_show=True),                                      # 图例
    toolbox_opts = ToolboxOpts(is_show=True),                                    # 工具包
    visualmap_opts = VisualMapOpts(is_show=True),                                # 视觉映射
)
# 生成图表
print(line.render())

1.4 数据处理

import json
f_us = open("F:/python LangChain/可视化案例数据/折线图数据/美国.txt","r",encoding="utf-8")
us_data = f_us.read()
us_data = us_data.replace("jsonp_1629344292311_69436(","")
us_data = us_data[:-2]
us_dict = json.loads(us_data)
trend = us_dict['data'][0]['trend']
x_data = trend['updateDate'][:314]
y_data = trend['list'][0]['data'][:314]

1.5 创建折现图

import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts
from pyecharts.options import LabelOpts
#打开文件
f_us = open("F:/python LangChain/可视化案例数据/折线图数据/美国.txt","r",encoding="utf-8")
us_data = f_us.read()
f_jp = open("F:/python LangChain/可视化案例数据/折线图数据/日本.txt","r",encoding="utf-8")
jp_data = f_jp.read()
f_in = open("F:/python LangChain/可视化案例数据/折线图数据/印度.txt","r",encoding="utf-8")
in_data = f_in.read()

# 去掉不合理开头
us_data = us_data.replace("jsonp_1629344292311_69436(","")
jp_data = jp_data.replace("jsonp_1629350871167_29498(","")
in_data = in_data.replace("jsonp_1629350745930_63180(","")

# 去掉不合理结尾
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]

# JSON转字典
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)

# 获取trend key
us_trend = us_dict['data'][0]['trend']
jp_trend = jp_dict['data'][0]['trend']
in_trend = in_dict['data'][0]['trend']

# 取x轴,y轴数据
us_x_data = us_trend['updateDate'][:314]
us_y_data = us_trend['list'][0]['data'][:314]

jp_x_data = jp_trend['updateDate'][:314]
jp_y_data = jp_trend['list'][0]['data'][:314]

in_x_data = in_trend['updateDate'][:314]
in_y_data = in_trend['list'][0]['data'][:314]

# 生成图表
line = Line()
# 添加x轴数据
line.add_xaxis(us_x_data)   # x轴共用,使用一个国家即可
# 添加y轴数据
line.add_yaxis("美国确诊人数",us_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis("日本确诊人数",jp_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis("印度确诊人数",in_y_data,label_opts=LabelOpts(is_show=False))

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

# 关闭文件对象
f_us.close()
f_jp.close()
f_in.close()

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到