一、json:
json数据格式:带有特定格式的字符串,负责不同语言的数据传递和交互。
不同语言的中转站
json数据格式:
1. {"name":"wjm","age":18} 可以看出这个是一个字典
2.[{"name":"w","age":18},{"name":"j","age":18},{"name":"m","age":18}],同时也可以是一个列表,列表中的元素是字典
那么数据的相互转换为 (涉及到dumps和loads函数)
note;只有字典和列表转化为json
import json
#这个是符合json格式的python数据
data = [{"name":"w","age":18},{"name":"j","age":18},{"name":"m","age":18}]
#通过这个函数将python数据转换为json数据
data = json.dumps(data)
print(type(data))
print(data)
#通过这个函数把json数据转化为python数据
data = json.loads(data)
print(type(data))
'''
结果为
<class 'str'>
[{"name": "w", "age": 18}, {"name": "j", "age": 18}, {"name": "m", "age": 18}]
<class 'list'>
'''
二、pyecharts模块介绍
由百度开源:官方网站:pyecharts - A Python Echarts Plotting Library built with love.
同时其也提供画廊,相当于给出一个展厅
网址为:Document
这里给出各种可视化示例
安装pyecharts:这个东西使用 win + R,输入cmd命令,然后进入环境
再使用pip install pyecharts。
三、pyecharts基础操作:
构建一个基础的折线图:
from pyecharts.charts import Line
line = Line()
#添加x轴数据
line.add_xaxis(["wjm","wmx","zjy"])
#添加y轴数据
line.add_yaxis("颜值",[100,2,50])
#生成图
line.render()
然后会在python中生成一个render.html文件,将这个文件在阅览器中打开
下面是打开后的效果图
接下来介绍全局配置选项,通过set_global_opts方法进行配置
这个全局配置项针对标题,图例和工具箱进行配置
接下来进行简单的演示
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
line = Line()
#添加x轴数据
line.add_xaxis(["wjm","wmx","zjy"])
#添加y轴数据
line.add_yaxis("颜值",[100,2,50])
#设置全局配置项
line.set_global_opts(
#改变标题,确定位置,pos_left是指靠近左边有多远,center是居中显示
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)
#剩余的全局配置项都可以在官网上找
)
#生成图
line.render()
这个工具栏可以尝试使用,也是很有趣的
三、json模块的数据处理
我们的数据文件通常是一个文件
我们首先使用open函数对数据进行处理
然后通过read方法读取全部内容
然后将json数据转化为python数据
然后就可以绘制图像了
不要忘记在程序结束的时候close文件
note:
1.替换内容:使用replace函数
2.去掉结尾,可以使用data = data[:-2] #去掉结尾的两个字符,data是取出来的数据
然后就是取出某一部分数据
比如你的文件是个列表中嵌套字典,那么我们可以通过kkk = data["key名称"] 取出对应字典
四、对于地图的绘制
from pyecharts.charts import Map
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
#地图对象
map = Map()
#准备数据
data = [
("辽宁",99),
("北京",199),
("台湾",299),
("澳门",399),
("香港",499),
]
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":"#FF6666"},
{"min":100,"max":500,"label":"100-500","color":"#990033"}
]
)
)
#绘图
map.render()
至于颜色去哪里找,我们可以使用在线懒人工具来帮助我们
网址:懒人工具-json在线解析-在线JSON格式化工具-json校验-程序员必备 (kuquidc.com)
里面有一个RGB颜色查询表供我们使用
五、基础动态柱状图
from pyecharts.charts import Bar
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
#柱状图对象
bar = Bar()
#添加x轴数据
bar.add_xaxis(["wjm","wmx","zjy"])
#添加y轴数据
bar.add_yaxis("颜值",[100,2,50])
#绘图
bar.render("颜值对比图.html")
#绘图
bar.render()
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts,TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
#柱状图对象
bar = Bar()
#添加x轴数据
bar.add_xaxis(["wjm","wmx","zjy"])
#添加y轴数据
bar.add_yaxis("颜值",[100,2,50],label_opts=LabelOpts(position="right"))
#绘图
bar.render("颜值对比图.html")
#反转xy轴
bar.reversal_axis()
#把数值标签放到右侧 放到y轴那label_opts=LabelOpts(position="right")
#绘图
bar.render()
根据时间线绘制图表Timeline()
每一个时间点存在一个柱状图,这样就会播放
from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType
#柱状图对象
bar1 = Bar()
#添加x轴数据
bar1.add_xaxis(["wjm","wmx","zjy"])
#添加y轴数据
bar1.add_yaxis("颜值",[100,2,50],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()
bar2 = Bar()
#添加x轴数据
bar2.add_xaxis(["wjm","wmx","zjy"])
#添加y轴数据
bar2.add_yaxis("颜值",[100,50,2],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
#创建时间对象,设置主题为蓝
timeline = Timeline(
{"theme":ThemeType.LIGHT}
)
#在时间线内添加柱状图对象
timeline.add(bar1,"2024年颜值")
timeline.add(bar2,"2004年颜值")
#自动播放设置
timeline.add_schema(
play_interval=1000,#时间单位,毫秒
is_timeline_show=True,#是否显示时间线
is_auto_play=True,#是否自动播放
is_loop_play=True#是否循环播放
)
#绘图
timeline.render()
这个效果大家可以允许尝试。