json
是一种轻量的数据交互格式,可以按照json指定的格式去组织和封装数据,而本质上是一个带有特定格式的字符串。
功能
json是在各个编程语言中流通的数据格式,负责不同编程语言之间的数据传递和交互。
格式
json的格式要求较为严格,故直接给出样例。
其实json的格式与python中的字典和列表相似
1.{"abc":"def","kew":1}
2.[{"a":"b","c":"d"},{"e":2,"f":3}]
python和json的转化
python中内置了json
模块,可以直接使用
import json
#python类型数据
data = [{"a":"b","c":"d"},{"e":2,"f":3}]
#转化为json
data = json.dumps(data)
#转化回python格式
data = json.loads(data)
而python转json的时候可能会把中文编程一串英文,如果要保证中文不会被改变,就可以这样:
data = json.dumps(data,ensure_ascii=False)
pyecharts模块
可以辅助做出数据可视化图
安装pyecharts
直接pip install pyecharts
即可
构建基础折线图
# 导入模块Line功能
from pyecharts.charts import Line
# 得到折线图对象
line = Line()
# 添加x轴数据
line.add_xaxis(['a','b','c'])
# 添加y轴数据
line.add_yaxis('value',[30,20,10])
# 生成图表
line.render()
注意line.render()
里面可以写上文件名,类似于"xxx.html"
,并且也可以写上路径使其生成到指定的路径
pyecharts配置选项
- 全局配置选项:即对整个图像进行设置,例如图像的标题或者轴
- 系列配置选项:即对轴上的值进行配置
全局配置选项
set_global_opts
——————————————————————————————————From pyecharts.org
运用set_global_opts
方法进行配置:
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,TooltipOpts
line.set_global_opts(
# title:标题,pos_left:离左边有多远,pos_bottom:离底部有多远,同时也有距离右边等等
title_opts = TitleOpts(title = '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),
# 是否展示提示框配置项
tooltip_opts = TooltipOpts(is_show = True),
)
在实际开发的过程中,我们拿到的json文件可能并不符合python标准,介时需要进行规整
数据的选择
如果我们拿到了json文件之后,里面可能有很多我们根本用不到的数据,那么这时候我们可以利用json在python中已经转为了字典,直接取到特定的数据(可以利用json解析工具进行可视化分析)
例如:
data_y = dic_us['data'][0]['trend']['list'][0]['data']
data_x = dic_us['data'][0]['trend']['updateData'][:314]
构建基础地图
# 导入
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts
# 初始化
map = Map()
# 准备数据
data = [('province_name1',1),('province_name2',2)]
# 添加数据
map.add('map',data,'china')
# 绘图
map.render()
全局选项
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'}
])
)
在这里注意,数据记录时需要把省份的全称写上去,比如“北京市”,现版本pyecharts如果不写全就无法识别,数据就无法填上去,不过在构建地图的时候,省份的地图不需要加省或市。
构建基础柱状图
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(['a','b','c'])
bar.add_yaxis('d',[1,2,3])
bar.render()
反转x轴和y轴
bar.reversal_axis()
修改数值显示位置
bar.add_xaxis('c',[1,2,3],label_opts=LabelOpts(position='right')) # 改到右侧显示
创建时间线
from pyecharts.charts import Timeline
bar1 = Bar()
...
bar2 = Bar()
...
timeline = Timeline()
timeline.add(bar1,'2023')
timeline.add(bar2,'2024')
timeline.render()
实现自动播放
timeline.add_schema(
play_interval = 1000, # 自动播放间隔,单位为毫秒
is_timeline_show = 1, # 是否显示时间线
is_auto_play = 1, # 是否自动播放
is_loop_play = 1 # 是否循环自动播放
)
时间线设置主题
from pyecharts.globals import ThemeType
timeline = Timeline(
{'theme':ThemeType.LIGHT}
)
——————————————————————————————From B站黑马程序员
在python中实现按照排序函数进行排序
lst = [['a',1],['b',2]]
def func(element):
return element[1] # 按照第二个元素进行排序
lst.sort(key = func)
# 也可以写成匿名函数的形式
lst.sort(key = lambda element:element[1])