python基础语法学习(工程向)-Stage3-数据可视化

json

是一种轻量的数据交互格式,可以按照json指定的格式去组织和封装数据,而本质上是一个带有特定格式的字符串。

功能

json是在各个编程语言中流通的数据格式,负责不同编程语言之间的数据传递和交互。

格式

json的格式要求较为严格,故直接给出样例。

其实json的格式与python中的字典和列表相似

python 复制代码
1.{"abc":"def","kew":1}

2.[{"a":"b","c":"d"},{"e":2,"f":3}]

python和json的转化

python中内置了json模块,可以直接使用

python 复制代码
import json

#python类型数据
data = [{"a":"b","c":"d"},{"e":2,"f":3}]

#转化为json
data = json.dumps(data)

#转化回python格式
data = json.loads(data)

而python转json的时候可能会把中文编程一串英文,如果要保证中文不会被改变,就可以这样:

python 复制代码
data = json.dumps(data,ensure_ascii=False)

pyecharts模块

可以辅助做出数据可视化图
安装pyecharts

直接pip install pyecharts即可

构建基础折线图

python 复制代码
# 导入模块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方法进行配置:

python 复制代码
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解析工具进行可视化分析)

例如:

python 复制代码
data_y = dic_us['data'][0]['trend']['list'][0]['data']
data_x = dic_us['data'][0]['trend']['updateData'][:314]

构建基础地图

python 复制代码
# 导入
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()

全局选项

python 复制代码
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如果不写全就无法识别,数据就无法填上去,不过在构建地图的时候,省份的地图不需要加省或市。

构建基础柱状图

python 复制代码
from pyecharts.charts import Bar

bar = Bar()

bar.add_xaxis(['a','b','c'])
bar.add_yaxis('d',[1,2,3])

bar.render()

反转x轴和y轴

python 复制代码
bar.reversal_axis()

修改数值显示位置

python 复制代码
bar.add_xaxis('c',[1,2,3],label_opts=LabelOpts(position='right')) # 改到右侧显示

创建时间线

python 复制代码
from pyecharts.charts import Timeline

bar1 = Bar()
...
bar2 = Bar()
...

timeline = Timeline()

timeline.add(bar1,'2023')
timeline.add(bar2,'2024')

timeline.render()

实现自动播放

python 复制代码
timeline.add_schema(
	play_interval = 1000,	# 自动播放间隔,单位为毫秒
	is_timeline_show = 1,	# 是否显示时间线
	is_auto_play = 1,		# 是否自动播放
	is_loop_play = 1		# 是否循环自动播放
)

时间线设置主题

python 复制代码
from pyecharts.globals import ThemeType

timeline = Timeline(
	{'theme':ThemeType.LIGHT}
)

------------------------------------------------------------------------------------------From B站黑马程序员

在python中实现按照排序函数进行排序

python 复制代码
lst = [['a',1],['b',2]]

def func(element):
	return element[1] # 按照第二个元素进行排序

lst.sort(key = func)

# 也可以写成匿名函数的形式
lst.sort(key = lambda element:element[1])
相关推荐
棒棒的皮皮几秒前
【OpenCV】Python图像处理之图像加密解密
图像处理·python·opencv·计算机视觉
m5655bj2 分钟前
Python 将 Word 文档转换为 Markdown 格式
python·c#·word
万行3 分钟前
英语翻译素材
python
九河云5 分钟前
智能家居生态数字化:设备联动场景化编程与用户习惯学习系统建设
人工智能·学习·智能家居
秋深枫叶红12 分钟前
嵌入式第二十八篇——数据结构——队列
数据结构·学习·算法
计算机学姐13 分钟前
基于Python的新能源汽车数据可视化及分析系统【2026最新】
vue.js·python·信息可视化·django·flask·汽车·推荐算法
帅得不敢出门13 分钟前
Android11~13 Framework实现Ntp服务器多域名轮询同步时间
android·服务器·python·framework·github
刘晓倩18 分钟前
Python的re
java·python·mysql
njsgcs18 分钟前
pyautocad 基于线段包围盒聚类
python·数据挖掘·聚类
qq_2339070320 分钟前
GEO优化企业2025推荐,提升网站全球访问速度与用户体验
大数据·人工智能·python·ux