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])
相关推荐
惜.己8 分钟前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json
都叫我大帅哥1 小时前
Python的Optional:让你的代码优雅处理“空值”危机
python
曾几何时`3 小时前
基于python和neo4j构建知识图谱医药问答系统
python·知识图谱·neo4j
写写闲篇儿6 小时前
Python+MongoDB高效开发组合
linux·python·mongodb
杭州杭州杭州7 小时前
Python笔记
开发语言·笔记·python
路人蛃8 小时前
通过国内扣子(Coze)搭建智能体并接入discord机器人
人工智能·python·ubuntu·ai·aigc·个人开发
qiqiqi(^_×)9 小时前
卡在“pycharm正在创建帮助程序目录”
ide·python·pycharm
Ching·9 小时前
esp32使用ESP-IDF在Linux下的升级步骤,和遇到的坑Traceback (most recent call last):,及解决
linux·python·esp32·esp_idf升级
吗喽15434518810 小时前
用python实现自动化布尔盲注
数据库·python·自动化
hbrown10 小时前
Flask+LayUI开发手记(十一):选项集合的数据库扩展类
前端·数据库·python·layui