Python第一阶段-第十章-Python基础综合案例-数据可视化


1. json数据格式

什么是json:

  • JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据

  • JSON本质上是一个带有特定格式的字符串

  • 主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互. 类似于

    • 国际通用语言-英语
    • 中国56个民族不同地区的通用语言-普通话

json有什么用:
  • 各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型, 而其它语言可能没有对应的字典
    为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式。如下图,以Python和C语言互传数据为例:
    在这里插入图片描述

json格式数据转化
# json数据的格式可以是: 
{
   
   "name":"admin","age":18} 


# 也可以是:  
[{
   
   "name":"admin","age":18},{
   
   "name":"root","age":16},{
   
   "name":"张三","age":20}]

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

# 导入json模块 
import json 

# 准备符合格式json格式要求的python数据 
data = [{
   
   "name": "老王", "age": 16}, {
   
   "name": "张三", "age": 20}]
 
# 通过 json.dumps(data) 方法把python数据转化为了 json数据 
data = json.dumps(data) 

# 通过 json.loads(data) 方法把json数据转化为了 python数据 
data = json.loads(data)
1. json:是一种轻量级的数据交互格式, 采用完全独立于编程语言的文本格式来存储和表示数据(就是字符串)
	Python语言使用JSON有很大优势,因为:JSON无非就是一个单独的字典或一个内部元素都是字典的列表
所以JSON可以直接和Python的字典或列表进行无缝转换。
------------------------------------------------------------------------------------------------------------------
2. json格式数据转化
通过 json.dumps(data) 方法把python数据转化为了 json数据
data = json.dumps(data)
如果有中文可以带上:ensure_ascii=False参数来确保中文正常转换
通过 json.loads(data) 方法把josn数据转化为了 python列表或字典
data = json.loads(data)

2.pyecharts模块

如果想要做出数据可视化效果图, 可以借助pyecharts模块来完成

概况 :
Echarts 是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可. 而 Python 是门富有表达力的语言,很适合用于数据处理. 当数据分析遇上数据可视化时pyecharts 诞生了.

安装:

pip install pyecharts

如何查看官方示例
打开官方画廊:

https://gallery.pyecharts.org/#/README

3 基础折线图

在这里插入图片描述
在这里插入图片描述

pyecharts模块中有很多的配置选项, 常用到2个类别的选项:

  • 全局配置选项
  • 系列配置选项

全局配置选项
这里全局配置选项可以通过set_global_opts方法来进行配置, 相应的选项和选项的功能如下:
在这里插入图片描述

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

line = Line()

line.add_xaxis(["中国", "美国", "英国"])
line.add_yaxis("GDP", [50, 40, 30])

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)
)

line.render()

在这里插入图片描述

3.1 数据处理

利用第三方网站查看数据格式
http://www.ab173.com/
在这里插入图片描述
在这里插入图片描述
https://www.json.cn/
在这里插入图片描述
在这里插入图片描述
https://www.sojson.com/
https://www.jyshare.com/


from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts
# 处理数据
import json

f_us = open("可视化案例数据/折线图数据/美国.txt", "r", encoding="UTF-8")
f_jp = open("可视化案例数据/折线图数据/日本.txt", "r", encoding="UTF-8")
f_in = open("可视化案例数据/折线图数据/印度.txt", "r", encoding="UTF-8")
us_data = f_us.read()
jp_data = f_jp.read()
in_data = f_in.read()

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

# 去掉不合JSON规范的结尾
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]

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

# 获取trend key
us_trend_data = us_dict["data"][0]["trend"]
jp_trend_data = jp_dict["data"][0]["trend"]
in_trend_data = in_dict["data"][0]["trend"]

# 获取日期数据 2020年
us_x_data = us_trend_data["updateDate"][:314]
jp_x_data = jp_trend_data["updateDate"][:315]
in_x_data = in_trend_data["updateDate"][:314]

# 获取确认数据
us_y_data = us_trend_data["list"][0]["data"][:314]
jp_y_data = jp_trend_data["list"][0]["data"][:315]
in_y_data = in_trend_data["list"][0]["data"][:314]

# 生成图表
line = Line()
# 添加X轴数据
line.add_xaxis(us_x_data);
# 添加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%")
)

# 生成图表
line.render("折线图开发2.html")

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

在这里插入图片描述
以上效果图HTML源码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>折线图开发</title>
            <script type="text/javascript" src="https://assets.pyecharts.org/assets/v5/echarts.min.js"></script>

</head>
<body >
    <div id="8aa7b7db2ca54836bdbd25e5250e1fe7" class="chart-container" style="width:900px; height:500px; "></div>
    <script>
        var chart_8aa7b7db2ca54836bdbd25e5250e1fe7 = echarts.init(
            document.getElementById('8aa7b7db2ca54836bdbd25e5250e1fe7'), 'white', {
     
     renderer: 'canvas'});
        var option_8aa7b7db2ca54836bdbd25e5250e1fe7 = {
     
     
    "animation": true,
    "animationThreshold": 2000,
    "animationDuration": 1000,
    "animationEasing": "cubicOut",
    "animationDelay": 0,
    "animationDurationUpdate": 300,
    "animationEasingUpdate": "cubicOut",
    "animationDelayUpdate": 0,
    "aria": {
     
     
        "enabled": false
    },
    "color": [
        "#5470c6",
        "#91cc75",
        "#fac858",
        "#ee6666",
        "#73c0de",
        "#3ba272",
        "#fc8452",
        "#9a60b4",
        "#ea7ccc"
    ],
    "series": [
        {
     
     
            "type": "line",
            "name": "\u7f8e\u56fd\u786e\u8bca\u4eba\u6570",
            "connectNulls": false,
            "xAxisIndex": 0,
            "symbolSize": 4,
            "showSymbol": true,
            "smooth": false,
            "clip": true,
            "step": false,
            "data": [
                [
                    "2.22",
                    34
                ],
                [
                    "2.23",
                    34
                ],
                [
                    "2.24",
                    34
                ],
                [
                    "2.25",
                    53
                ],
                [
                    "2.26",
                    57
                ],
                [
                    "2.27",
                    60
                ],
                [
                    "2.28",
                    60
                ],
                [
                    "2.29",
                    64
                ],
                [
                    "3.1",
                    69
                ],
                [
                    "3.2",
                    89
                ],
                [
                    "3.3",
                    106
                ],
                [
                    "3.4",
                    125
                ],
                [
                    "3.5",
                    161
                ],
                [
                    "3.6",
                    233
                ],
                [
                    "3.7",
                    345
                ],
                [
                    "3.8",
                    445
                ],
                [
                    "3.9",
                    572
                ],
                [
                    "3.10",
                    717
                ],
                [
                    "3.11",
                    1010
                ],
                [
                    "3.12",
                    1322
                ],
                [
                    "3.13",
                    1264
                ],
                [
                    "3.14",
                    1678
                ],
                [
                    "3.15",
                    3499
                ],
                [
                    "3.16",
                    4629
                ],
                [
                    "3.17",
                    5894
                ],
                [
                    "3.18",
                    9345
                ],
                [
                    "3.19",
                    14250
                ],
                [
                    "3.20",
                    19624
                ],
                [
                    "3.21",
                    22043
                ],
                [
                    "3.22",
                    32717
                ],
                [
                    "3.23",
                    46332
                ],
                [
                    "3.24",
                    53268
                ],
                [
                    "3.25",
                    65285
                ],
                [
                    "3.26",
                    83507
                ],
                [
                    "3.27",
                    101657
                ],
                [
                    "3.28",
                    121117
                ],
                [
                    "3.29",
                    139675
                ],
                [
                    "3.30",
                    161367
                ],
                [
                    "3.31",
                    184183
                ],
                [
                    "4.1",
                    206207
                ],
                [
                    "4.2",
                    236339
                ],
                [
                    "4.3",
                    270473
                ],
                [
                    "4.4",
                    312076
                ],
                [
                    "4.5",
                    334125
                ],
                [
                    "4.6",
                    363349
                ],
                [
                    "4.7",
                    394182
                ],
                [
                    "4.8",
                    425828
                ],
                [
                    "4.9",
                    463433
                ],
                [
                    "4.10",
                    498674
                ],
                [
                    "4.11",
                    530384
                ],
                [
                    "4.12",
                    559245
                ],
                [
                    "4.13",
                    586941
                ],
                [
                    "4.14",
                    610632
                ],
                [
                    "4.15",
                    641397
                ],
                [
                    "4.16",
                    674829
                ],
                [
                    "4.17",
                    710021
                ],
                [
                    "4.18",
                    738697
                ],
                [
                    "4.19",
                    762496
                ],
                [
                    "4.20",
                    789383
                ],
                [
                    "4.21",
                    825306
                ],
                [
                    "4.22",
                    844992
                ],
                [
                    "4.23",
                    877497
                ],
                [
                    "4.24",
                    916348
                ],
                [
                    "4.25",
                    955488
                ],
                [
                    "4.26",
                    985060
                ],
                [
                    "4.27",
                    1004942
                ],
                [
                    "4.28",
                    1029878
                ],
                [
                    "4.29",
                    1056646
                ],
                [
                    "4.30",
                    1092656
                ],
                [
                    "5.1",
                    1125305
                ],
                [
                    "5.2",
                    1156744
                ],
                [
                    "5.3",
                    1185167
                ],
                [
                    "5.4",
                    1209702
                ],
                [
                    "5.5",
                    1234592
                ],
                [
                    "5.6",
                    1256639
                ],
                [
                    "5.7",
                    1289028
                ],
                [
                    "5.8",
                    1318686
                ],
                [
                    "5.9",
                    1342723
                ],
                [
                    "5.10",
                    1365308
                ],
                [
                    "5.11",
                    1381665
                ],
                [
                    "5.12",
                    1406519
                ],
                [
                    "5.13",
                    1427587
                ],
                [
                    "5.14",
                    1453381
                ],
                [
                    "5.15",
                    1480975
                ],
                [
                    "5.16",
                    1503684
                ],
                [
                    "5.17",
                    1526134
                ],
                [
                    "5.18",
                    1532861
                ],
                [
                    "5.19",
                    1555133
                ],
                [
                    "5.20",
                    1573778
                ],
                [
                    "5.21",
                    1597130
                ],
                [
                    "5.22",
                    1627409
                ],
                [
                    "5.23",
                    1650677
                ],
                [
                    "5.24",
                    1672527
                ],
                [
                    "5.25",
                    1689727
                ],
                [
                    "5.26",
                    1711569
                ],
                [
                    "5.27",
                    1730595
                ],
                [
                    "5.28",
                    1750377
                ],
                [
                    "5.29",
                    1772643
                ],
                [
                    "5.30",
                    1797949
                ],
                [
                    "5.31",
                    1822117
                ],
                [
                    "6.1",
                    1842243
                ],
                [
                    "6.2",
                    1862879
                ],
                [
                    "6.3",
                    1887708
                ],
                [
                    "6.4",
                    1907840
                ],
                [
                    "6.5",
                    1928026
                ],
                [
                    "6.6",
                    1973883
                ],
                [
                    "6.7",
                    1995854
                ],
                [
                    "6.8",
                    2012001
                ],
                [
                    "6.9",
                    2030323
                ],
                [
                    "6.10",
                    2052816
                ],
                [
                    "6.11",
                    2072274
                ],
                [
                    "6.12",
                    2094368
                ],
                [
                    "6.13",
                    2123102
                ],
                [
                    "6.14",
                    2150245
                ],
                [
                    "6.15",
                    2166685
                ],
                [
                    "6.16",
                    2188198
                ],
                [
                    "6.17",
                    2215580
                ],
                [
                    "6.18",
                    2242914
                ],
                [
                    "6.19",
                    2275218
                ],
                [
                    "6.20",
                    2303692
                ],
                [
                    "6.21",
                    2342597
                ],
                [
                    "6.22",
                    2363825
                ],
                [
                    "6.23",
                    2396101
                ],
                [
                    "6.24",
                    2426500
                ],
                [
                    "6.25",
                    2474962
                ],
                [
                    "6.26",
                    2511784
                ],
                [
                    "6.27",
                    2571448
                ],
                [
                    "6.28",
                    2615417
                ],
                [
                    "6.29",
                    2649774
                ],
                [
                    "6.30",
                    2695685
                ],
                [
                    "7.1",
                    2744570
                ],
                [
                    "7.2",
                    2797737
                ],
                [
                    "7.3",
                    2855961
                ],
                [
                    "7.4",
                    2909123
                ],
                [
                    "7.5",
                    2948587
                ],
                [
                    "7.6",
                    2996027
                ],
                [
                    "7.7",
                    3055548
                ],
                [
                    "7.8",
                    3116430
                ],
                [
                    "7.9",
                    3174924
                ],
                [
                    "7.10",
                    3242086
                ],
                [
                    "7.11",
                    3311844
                ],
                [
                    "7.12",
                    3381274
                ],
                [
                    "7.13",
                    3436152
                ],
                [
                    "7.14",
                    3490706
                ],
                [
                    "7.15",
                    3565476
                ],
                [
                    "7.16",
                    3642907
                ],
                [
                    "7.17",
                    3719446
                ],
                [
                    "7.18",
                    3790373
                ],
                [
                    "7.19",
                    3854368
                ],
                [
                    "7.20",
                    3901026
                ],
                [
                    "7.21",
                    3979579
                ],
                [
                    "7.22",
                    4046552
                ],
                [
                    "7.23",
                    4118684
                ],
                [
                    "7.24",
                    4197515
                ],
                [
                    "7.25",
                    4273303
                ],
                [
                    "7.26",
                    4333464
                ],
                [
                    "7.27",
                    4384069
                ],
                [
                    "7.28",
                    4451396
                ],
                [
                    "7.29",
                    4515787
                ],
                [
                    "7.30",
                    4570103
                ],
                [
                    "7.31",
                    4655611
                ],
                [
                    "8.1",
                    4729242
                ],
                [
                    "8.2",
                    4778177
                ],
                [
                    "8.3",
                    4821556
                ],
                [
                    "8.4",
                    4873925
                ],
                [
                    "8.5",
                    4925454
                ],
                [
                    "8.6",
                    4988431
                ],
                [
                    "8.7",
                    5041384
                ],
                [
                    "8.8",
                    5108144
                ],
                [
                    "8.9",
                    5164221
                ],
                [
                    "8.10",
                    5212499
                ],
                [
                    "8.11",
                    5263777
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值