09_Python基础综合案例 - 数据可视化(折线图)

Python基础综合案例 - 数据可视化(折线图)

一、案例背景

本案例主要涉及数据可视化中的折线图制作,包括2020年印美日新冠累计确诊人数、全国疫情地图可视化、动态GDP增长图等效果展示。案例数据来自<<百度疫情实时大数据报告>>及公开的全球各国GDP数据,使用的技术主要是pyecharts(Python与Echarts结合的数据可视化库)。

二、JSON数据格式

(一)JSON的概念

  1. 定义
    • JSON是一种轻量级的数据交互格式,本质上是一个带有特定格式的字符串。它是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互,类似于国际通用语言(如英语)或中国通用语言(普通话)的作用。
  2. 数据格式要求
    • 例如{"name":"admin","age":18}[{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":20}]

(二)Python与JSON数据的相互转化

  1. 转化方法
    • 导入json模块,使用json.dumps()方法把Python数据转化为JSON数据,使用json.loads()方法把JSON数据转化为Python数据。
    • 例如:
import json 
data = [{"name": "老王", "age": 16}, {"name": "张三", "age": 20}]
# Python数据转JSON数据
json_data = json.dumps(data) 
# JSON数据转Python数据
new_data = json.loads(json_data)
  1. 注意事项
    • 如果有中文,在json.dumps()方法中可以带上ensure_ascii=False参数来确保中文正常转换。

三、pyecharts模块

(一)模块介绍

  1. 概况
    • Echarts是由百度开源的数据可视化库,具有良好的交互性和精巧的图表设计。Python是适合数据处理的语言,当数据分析遇上数据可视化时pyecharts诞生了。
  2. 安装
    • 使用pip install pyecharts命令安装。例如在命令提示符中输入C:Usersjavac>pip install pyecharts -i https:/pypi.tuna.tsinghua.edu.cn/simple可安装pyecharts及其相关依赖。

(二)快速入门 - 构建基础折线图

  1. 代码示例
from pyecharts.charts import Line
# 得到折线图对象
line = Line()
# 添加x轴数据
line.add_xaxis(["中国", "美国", "英国"])
# 添加y轴数据
line.add_yaxis("GDP", [30, 20, 10])
# 生成图表
line.render()
  1. 配置选项
    • 全局配置选项:常用set_global_opts方法进行配置,可配置图表的标题、图例、鼠标移动效果、工具栏等整体配置项。例如:
set_global_opts(
    title_opts=opts.TitleOpts(title="标题", pos_left="center"),
    legend_opts=opts.LegendOpts(pos_left='70%'),
    xaxis_opts=opts.AxisOpts(name="时间"),
    yaxis_opts=opts.AxisOpts(name="累计确诊人数")
)
  • 系列配置选项:例如.add_yaxis相关配置选项包括series_name(设置图例名称)、y_axis(输入y轴数据)、symbol_size(设置点的大小)、label_opts(标签设置项)、linestyle_opts(线条宽度和样式)等。

四、数据处理

(一)原始数据格式及处理

  1. 原始数据
    • 例如{"status":0,"msg":"success","data":[{"name":"日本","trend":"updateDate":["2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28"],"list":[{"name":"确诊","data":[93,105,132,144,156,164,186,210,230,239,254,268,284,...}]}}
  2. 处理步骤
    • 导入json模块,对数据进行整理使其符合JSON格式,然后进行转化和提取。例如:
import json
data = data.replace("jsonp_1629350871167_29498(", "") 
data = data[:-2] 
data = json.loads(data) 
data = data["data"][0]['trend'] 
x1_data = data['updateDate']
y1_data = data['list'][0]["data"]
x1_data = data['updateDate'][:314]
y1_data = data['list'][0]["data"][:314]

五、创建疫情折线图示例

(一)导入模块

from pyecharts.charts import Line
import pyecharts.options as opts

(二)构建折线图

  1. 创建折线图对象并设置初始化选项
l = Line(init_opts=opts.InitOpts(width="1600px", height="800px"))
  1. 添加数据
l.add_xaxis(xaxis_data=x1_data[0:-1:2])
l.add_yaxis(
    series_name="美国确诊人数",
    y_axis=y1_data[0:-1],
    symbol_size=10,
    label_opts=opts.LabelOpts(is_show=False),
    linestyle_opts=opts.LineStyleOpts(width=2)
)
  1. 设置全局配置选项
l.set_global_opts(
    title_opts=opts.TitleOpts(title="2020年 印🇮🇳美🇺🇸日🇯🇵 累计确诊人数对比图",pos_left="center"),
    xaxis_opts=opts.AxisOpts(name="时间"),
    yaxis_opts=opts.AxisOpts(name="累计确诊人数"),
    legend_opts=opts.LegendOpts(pos_left='70%')
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值