【第九章——PyeCharts】【最新!黑马程序员Python自学课程笔记】课上笔记+案例源码+作业源码

第九章-数据可视化PyeCharts入门

9.1案例介绍

9.2JSON数据格式的转换

python 复制代码
"""
演示json数据和python字典的相互转换
"""
import json
# 准备列表,列表内每一个元素都是字典,将其转换为json
data=[{"name":"张大帅","age":11},{"name":"王小丫","age":14},{"name":"李四","age":15}]
json_str=json.dumps(data,ensure_ascii=False)
print(type(json_str))
print(json_str)


# 准备字典,将字典转换为json
d={"name":"周杰伦","addr":"台北"}
json_str=json.dumps(d,ensure_ascii=False)
print(type(json_str))
print(json_str)



# 将json字符串转换为python数据类型[{k:v,k:v},{k:v,k:v}]
s='[{"name":"张大帅","age":11},{"name":"王小丫","age":14},{"name":"李四","age":15}]'
l=json.loads(s)
print(type(l))
print(l)


# 将json字符串转换为python数据类型{k:v,k:v}
s='{"name":"周杰伦","addr":"台北"}'
d=json.loads(s)
print(type(d))
print(d)

9.3PyeCharts模块介绍

画廊:Document (pyecharts.org)

介绍文档:pyecharts - A Python Echarts Plotting Library built with love.

9.4PyeCharts的入门使用

python 复制代码
"""
演示pyecharts的基础入门
"""
# 导包
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])


# 设置全局配置项 set_global_opts来设置,position
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)
)

# 通过render方法,将代码生成图像
Line.render()

9.5数据准备

懒人工具JSON解析器(ab173):懒人工具-json在线解析-在线JSON格式化工具-json校验-程序员必备 (kuquidc.com)

python 复制代码
"""
演示可视化需求1:折线图开发
"""
import json
# 处理数据
f_us=open("E:/美国.txt","r",encoding="UTF-8")
us_data=f_us.read() # 美国的全部内容
# 去掉不合JSON规范的开头
us_data=us_data.replace("jsonp_1629344292311_69436(","")
# 去掉不合JSON规范的结尾
us_data=us_data[:-2]
# JSON转Python字典
us_dict=json.loads(us_data)

# 获取trend key
us_trend_data=us_dict['data'][0]['trend']
# print(type(trend_data))
# print(trend_data)

# 获取日期数据,用于x轴,取2020年(到315下标结束)
us_x_data=us_trend_data['updateDate'][:314]

# 获取确认数据,用于y轴,取2020年(到315下标结束)
us_y_data=us_trend_data['list'][0]['data'][:314]

# 生成图表

9.6生成折线图

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

# 处理数据
f_us=open("E:/美国.txt","r",encoding="UTF-8")
us_data=f_us.read() # 美国的全部内容

f_jp=open("E:/日本.txt","r",encoding="UTF-8")
jp_data=f_jp.read() # 日本的全部内容

f_in=open("E:/印度.txt","r",encoding="UTF-8")
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]

# JSON转Python字典
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']
# print(type(trend_data))
# print(trend_data)

# 获取日期数据,用于x轴,取2020年(到315下标结束)
us_x_data=us_trend_data['updateDate'][:314]
jp_x_data=jp_trend_data['updateDate'][:314]
in_x_data=in_trend_data['updateDate'][:314]

# 获取确认数据,用于y轴,取2020年(到315下标结束)
us_y_data=us_trend_data['list'][0]['data'][:314]
jp_y_data=jp_trend_data['list'][0]['data'][:314]
in_y_data=in_trend_data['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))  # 添加美国的y轴数据
Line.add_yaxis("日本确诊人数",jp_y_data,label_opts=LabelOpts(is_show=False))  # 添加日本的y轴数据
Line.add_yaxis("印度确诊人数",in_y_data,label_opts=LabelOpts(is_show=False))  # 添加印度的y轴数据

# 设置全局选项
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()
相关推荐
eleqi14 小时前
Python+DRVT 从外部调用 Revit:批量创建楼板
python·系统集成·revit·外部调用·drvt·自动化生产流水线
咖啡Beans14 小时前
Python工具DrissionPage推荐
后端·python
Nicole-----14 小时前
PySpark数据输入
python
扑克中的黑桃A14 小时前
Python学习的自我理解和想法(27)
python
守.护15 小时前
云计算学习笔记——HTTP服务、NFS服务篇
笔记·学习·云计算
wdfk_prog15 小时前
[Linux]学习笔记系列 -- lib/dump_stack.c 栈回溯打印(Stack Trace Dumping) 内核调试与错误诊断的基石
linux·运维·服务器·c语言·笔记·学习
i.ajls15 小时前
无监督学习,推荐系统以及强化学习笔记
笔记·学习·机器学习
蓝倾97615 小时前
小红书获取用户作品列表API接口操作指南
java·服务器·前端·python·电商开放平台·开放api接口
聆风吟º16 小时前
【Spring Boot 报错已解决】Web server failed to start. Port 8080 was already in use.
spring boot·笔记·技术干货
Suckerbin16 小时前
LAMPSecurity: CTF6靶场渗透
笔记·安全·web安全·网络安全