JSON
--JSON的定义
JSON是一种轻量级的数据交互格式,可以按照JSON指定的格式去组织和封装数据。
JSON本质上是一个带有特定格式的字符串。它作为一种中转的数据格式,负责不同编程语言中的数据传递和交互。
--JSON的格式
它的格式是是pyhon中的列表或列表中嵌套的字典的格式。
--python数据和JSON数据的相互转换
# 导入json模板
import json
# 准备符合json格式要求的python数据
data=[{"name":"张","age":18},{"name":"刘","age":19}]
# 通过json.dumps的方法将python数据转化为json数据
data1=json.dumps(data,ensure_ascii=False)
print(data1)
print(type(data1))
# 通过josn.loads的方法将json数据转化为python数据
data2=json.loads(data1)
print(data2)
print(type(data2))
结果:(ensure_ascii=False将中文转换不成中文的编码问题)
[{"name": "张", "age": 18}, {"name": "刘", "age": 19}]
<class 'str'>
[{'name': '张', 'age': 18}, {'name': '刘', 'age': 19}]
<class 'list'>
s='[{"name":"张","age":18},{"name":"刘","age":19}]'
pyecharts模块
--pyecharts模块安装
找到命令提示符,输入pip install pyecharts,然后回车安装
输入python,回车,输入import pyecharts,如果没问题,则安装成功
--折线图
# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
# 创建折线图
line=Line()
# 添加x轴数据
line.add_xaxis(["张","李","杨"])
# 添加y轴数据
line.add_yaxis("成绩",[80,93,82])
# 设置全局配置项
line.set_global_opts(
# 标题
title_opts=TitleOpts(title="成绩展示",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()
运行后点击左侧render.html,shift+左键点击浏览器查看折线图
--地图可视化
# 导包
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts
# 准备地图对象
map=Map()
# 准备数据
data=[
("山东省",566),
("河南省",641),
("河北省",426),
("台湾省",193)
]
# 添加数据
map.add("地图",data,"china")
# 设置全局选项
map.set_global_opts(
visualmap_opts=VisualMapOpts(
is_show=True,
is_piecewise=True,
pieces=[
{"min":1,"max":9,"label":"1-9人","color":"#CCFFFF"},
{"min": 10,"max":99,"label":"10-99人","color":"#FFFF99"},
{"min":100,"max":499,"label":"99-499人","color":"#FF9966"},
{"min":500,"max":999,"label":"499-999人","color":"#FF6666"}
]
)
)
# 绘图
map.render()
--基础柱状图
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts
# 构建柱状图对象
bar = Bar()
# 添加x轴数据
bar.add_xaxis(["小红","小蓝","小黄"])
#添加y轴数据,数据标签移动到右侧
bar.add_yaxis("成绩",[99,79,85],label_opts=LabelOpts(position="right"))
# 反转xy轴
bar.reversal_axis()
#绘图
bar.render()
--基础时间线柱状图
from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType
# 构建柱状图对象
bar1 = Bar()
# 添加x轴数据
bar1.add_xaxis(["小红","小蓝","小黄"])
#添加y轴数据,数据标签移动到右侧
bar1.add_yaxis("成绩",[99,79,85],label_opts=LabelOpts(position="right"))
# 反转xy轴
bar1.reversal_axis()
bar2 = Bar()
bar2.add_xaxis(["小红","小蓝","小黄"])
bar2.add_yaxis("成绩",[92,82,90],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
bar3 = Bar()
bar3.add_xaxis(["小红","小蓝","小黄"])
bar3.add_yaxis("成绩",[96,90,89],label_opts=LabelOpts(position="right"))
bar3.reversal_axis()
# 创建时间线对象
timeline=Timeline(
{"theme":ThemeType.LIGHT} # 主题颜色设置
)
#timeline对象添加bar柱状图
timeline.add(bar1,"第一次考试成绩")
timeline.add(bar2,"第二次考试成绩")
timeline.add(bar3,"第三次考试成绩")
#设置自动播放
timeline.add_schema(
play_interval=1000, # 自动播放时间间隔,单位毫秒
is_timeline_show=True, # 是否在自动播放的时候显示时间线
is_auto_play=True, # 是否自动播放
is_loop_play=True # 是否循环播放
)
#绘图
timeline.render()