Python第二语言(九、Python第一阶段实操)
目录
1. json数据格式
2. Python与json之间的数据转换
3. pyecharts模块官网
4. pyecharts快速入门(折线图)
5. pyecharts全局配置选项
5.1 set_global_ops使用
5.1.1. title_opts
5.1.2 legend_opts
5.1.3 toolbox_opts
5.1.4 visualmap_opts
6. pyecharts基础地图使用
6.1 Map使用
7. pyecharts柱状图使用
7.1 柱状图使用
7.2 轴的反转:bar.reversal_axis() # 反转xy轴
7.3 数值至右:bar.add_yaxis("GDP", [3000, 5000, 2800], label_opts=LabelOpts(position="right")) # 添加y轴数据
7.4 小结
7.5 创建时间线:Timeline()-时间线
7.5.1 使用Timeline()-时间线
7.5.2 时间线设置主题
7.5.3 常见的时间线主题
本章内容:使用之前学习到的Python基础知识通过echarts大屏组件来进行可视化开发;
1. json数据格式
- 各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型,而其它语言可能没有对应的字典,为了让不同的语言都能够相互通用的互相传递数据、JSON就是一种非常良好的中转数据格式;
2. Python与json之间的数据转换
数据转换成json的时候会涉及到一个编码问题,下面可以看见数据是我们看不懂的东西,通过ensure_ascii=False将下面的数据转成正常的中文,供我们观看;
data = json.dumps(data, ensure_ascii=False)
# 1.导入json模块
import json# 2.准备符合格式json格式要求的python数据
data = [{"name": "zhangSan", "age": 28}, {"name": "lisi", "age": 18}]# 3.通过json.dumps(data)方法把python数据转化为json数据
data = json.dumps(data)
print(f"类型:{type(data)}")
print(f"转换后的json:{data}")# 4.通过json.loads(data)方法把json数据转化为python数据
data = json.loads(data)
print(f"类型:{type(data)}")
print(f"转换成python数据类型:{data}")
json小结:
- json:是一种轻量级的数据交互格式,采用完全独立于编程语言的文本格式来存储和表示数据(就是字符串);
- Python语言使用JSON有很大优势,因为:JSON无非就是一个单独的字典或一个内部元素都是字典的列表,所以JSON可以直接和Python的字典或列表进行无缝转换;
- json格式数据转化;
- 通过 json.dumps(data)方法把python数据转化为了 json数据;
data = json.dumps(data)
;如果有中文可以带上:ensure_ascii=False
参数来确保中文正常转换;data = json.loads(data)
;通过 json.loads(data)方法把json数据转化为了 python列表或字典;
3. pyecharts模块官网
参考:Document (pyecharts.org)
通过pip安装pyecharts:(加入cmd安装)
安装: pip install pycharts
查看包的位置:pip show pyecharts
4. pyecharts快速入门(折线图)
from pyecharts.charts import Line
from pyecharts import options as opts# 创建一个折线图实例
line = Line()# 添加 X 轴数据
line.add_xaxis(["2017", "2018", "2019", "2020", "2021"])# 使用 opts.LineItem 传递 Y 轴数据
y_data = [opts.LineItem(value=30),opts.LineItem(value=20),opts.LineItem(value=10),opts.LineItem(value=50),opts.LineItem(value=60)
]# 添加 Y 轴数据,"GDP" 为系列名称
line.add_yaxis("GDP", y_data)# 可选:设置全局选项,例如标题
line.set_global_opts(title_opts=opts.TitleOpts(title="GDP 增长"))# 将图表渲染到一个 HTML 文件
line.render("line_chart.html")
5. pyecharts全局配置选项
set_global_opts方法
:- 全局配置项的作用:
- 配置图表的标题;
- 配置图例;
- 配置鼠标移动效果;
- 配置工具栏;
- 和整体配置项;
5.1 set_global_ops使用
# 导入全局配置选项,需要导入的包
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
from pyecharts import options as opts# 创建一个折线图实例
line = Line()# 添加 X 轴数据
line.add_xaxis(["2017", "2018", "2019", "2020", "2021"])# 使用 opts.LineItem 传递 Y 轴数据
y_data = [opts.LineItem(value=30),opts.LineItem(value=20),opts.LineItem(value=10),opts.LineItem(value=50),opts.LineItem(value=60)
]# 添加 Y 轴数据,"GDP" 为系列名称
line.add_yaxis("GDP", y_data)# 可选:设置全局选项,例如标题,
line.set_global_opts(title_opts=opts.TitleOpts(title="GDP 增长", pos_left="center", pos_bottom="10%"),legend_opts=LegendOpts(is_show=True),toolbox_opts=ToolboxOpts(is_show=True),visualmap_opts=VisualMapOpts(is_show=True)
)# 将图表渲染到一个 HTML 文件
line.render("line_chart.html")
这段代码会生成一个包含标题、图例、工具箱和视觉映射组件的折线图,并将其保存为 line_chart.html 文件:
line.set_global_opts(title_opts=opts.TitleOpts(title="GDP 增长", pos_left="center", pos_bottom="10%"),legend_opts=opts.LegendOpts(is_show=True),toolbox_opts=opts.ToolboxOpts(is_show=True),visualmap_opts=opts.VisualMapOpts(is_show=True)
)
5.1.1. title_opts
设置图表的标题选项。
title="GDP 增长"
:标题文本为 "GDP 增长"。pos_left="center"
:标题水平居中。pos_bottom="10%"
:标题垂直位置距离底部 10%。
title_opts=opts.TitleOpts(title="GDP 增长", pos_left="center", pos_bottom="10%")
5.1.2 legend_opts
设置图例选项。
is_show=True
:显示图例。
legend_opts=opts.LegendOpts(is_show=True)
5.1.3 toolbox_opts
设置工具箱选项。
is_show=True
:显示工具箱。工具箱提供了一些常用工具,比如保存图片、数据视图、还原、缩放、漫游等。
toolbox_opts=opts.ToolboxOpts(is_show=True)
5.1.4 visualmap_opts
设置视觉映射选项。
is_show=True
:显示视觉映射组件。视觉映射用于进行数据值到视觉元素(如颜色、大小等)的映射。
visualmap_opts=opts.VisualMapOpts(is_show=True)
6. pyecharts基础地图使用
6.1 Map使用
"""
演示地图可视化
"""
from pyecharts.charts import Map
from pyecharts import options as opts# 准备地图对象
map = Map()# 准备数据:省份名称及对应的数据值
data = [("北京", 99),("天津", 80),("上海", 95),("重庆", 70),("河北", 50),("河南", 60),("云南", 40),("辽宁", 55),("黑龙江", 65),("湖南", 75),("安徽", 45),("山东", 85),("新疆", 30),("江苏", 90),("浙江", 100),("江西", 35),("湖北", 50),("广西", 25),("甘肃", 20),("山西", 50),("内蒙古", 15),("陕西", 40),("吉林", 55),("福建", 65),("贵州", 30),("广东", 95),("青海", 10),("西藏", 5),("四川", 70),("宁夏", 20),("海南", 60),("香港", 75),("澳门", 85),("台湾", 80),
]# 将数据添加到地图
map.add("数据", data, maptype="china")# 设置全局选项
map.set_global_opts(title_opts=opts.TitleOpts(title="中国地图数据展示"),visualmap_opts=opts.VisualMapOpts(min_=0,max_=100,is_piecewise=True,pieces=[{"min": 80, "max": 100, "label": "80-100", "color": "#FF0000"},{"min": 60, "max": 79, "label": "60-79", "color": "#FFA500"},{"min": 40, "max": 59, "label": "40-59", "color": "#FFFF00"},{"min": 20, "max": 39, "label": "20-39", "color": "#7FFF00"},{"min": 0, "max": 19, "label": "0-19", "color": "#00FF00"},],),
)# 渲染图表
map.render("china_map.html")
7. pyecharts柱状图使用
7.1 柱状图使用
# 通过Bar构建基础柱状图
from pyecharts.charts import Barbar = Bar()bar.add_xaxis(["中国", "美国", "法国"]) # 添加x轴数据bar.add_yaxis("GDP", [3000, 5000, 2800]) # 添加y轴数据bar.render("柱状图.html") # 绘图
7.2 轴的反转:bar.reversal_axis() # 反转xy轴
# 通过Bar构建基础柱状图
from pyecharts.charts import Bar
from pyecharts import options as optsbar = Bar()bar.add_xaxis(["中国", "美国", "法国"]) # 添加x轴数据bar.add_yaxis("GDP", [3000, 5000, 2800]) # 添加y轴数据bar.reversal_axis() # 反转xy轴bar.render("柱状图.html") # 绘图
7.3 数值至右:bar.add_yaxis("GDP", [3000, 5000, 2800], label_opts=LabelOpts(position="right")) # 添加y轴数据
7.4 小结
- 通过Bar()构建一个柱状图对象;
- 和折线图一样,通过add_xaxis()和add _yaxis()添加 x和y轴数据;
- 通过柱状图对象的:reversal_axis(),反转x和y轴;
- 通过label opts=LabelOpts(position="right")设置 数值标签在右侧显示;
7.5 创建时间线:Timeline()-时间线
- 柱状图描述的是分类数据,回答的是每一个分类中「有多少?」这个问题,这是柱状图的主要特点,同时柱状图很难动态的描述一个趋势性的数据;
- 这里pyecharts为我们提供了一种解决方案-时间线如果说一个Bar、Line对象是一张图表的话,时间线就是创建一个一维的x轴,轴上每一个点就是一个图表对象;
7.5.1 使用Timeline()-时间线
# 导入包
from pyecharts.charts import Timeline, Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType# 创建时间线对象
timeline = Timeline({"theme": ThemeType.ROMA}
)# 准备数据
cities = ["北京", "上海", "广州", "深圳", "杭州", "宁波"]
gdp_data = [[3000, 5000, 2800, 3000, 2500, 2400], [3500, 5200, 2900, 3000, 2500, 2400],[3200, 4800, 2700, 3000, 2500, 2400],[3000, 5000, 2800, 3000, 2500, 2400], [3500, 5200, 2900, 3000, 2500, 2400],[3200, 4800, 2700, 3000, 2500, 2400]] # 假设为三个时间点的 GDP 数据# 循环添加数据到时间线中
for i in range(len(gdp_data)):# 创建柱状图对象bar = Bar()# 添加X轴和Y轴数据bar.add_xaxis(cities)bar.add_yaxis("GDP", gdp_data[i], label_opts=LabelOpts(position="right")) # 数值至右# 设置柱状图的全局选项bar.set_global_opts(title_opts=opts.TitleOpts(title=f"{i + 2020}年城市GDP"))bar.reversal_axis() # 反转xy轴# 将柱状图添加到时间线中timeline.add(bar, f"{i + 2020}年")# 设置自动播放
timeline.add_schema(play_interval=1000, # 自动播放的时间间隔,单位毫秒is_timeline_show=True, # 是否在自动播放的时候,显示时间线is_auto_play=True, # 是否自动播放is_loop_play=True # 是否循环自动播放
)# 渲染时间线
timeline.render("timeline_bar.html")
7.5.2 时间线设置主题
from pyecharts.globals import ThemeType# 创建时间线对象
timeline = Timeline({"theme": ThemeType.LIGHT}
)
7.5.3 常见的时间线主题
编号 | 主题 | 颜色 | 备注 |
---|---|---|---|
1 | ThemeType.WHITE | 红蓝 | 默认颜色等同于 bar=Bar() |
2 | ThemeType.LIGHT | 蓝黄粉 | 高亮颜色 |
3 | ThemeType.DARK | 红蓝 | 黑色背景 |
4 | ThemeType.CHALK | 红蓝 绿 | 黑色背景 |
5 | ThemeType.ESSOS | 红黄 | 暖色系 |
6 | ThemeType.INFOGRAPHIC | 红蓝黄 | 偏亮 |
7 | ThemeType.MACARONS | 紫绿 | 灰色背景 |
8 | ThemeType.PURPLE_PASSION | 粉紫 | 偏暗 |
9 | ThemeType.ROMA | 红黑灰 | 淡黄色背景 |
10 | ThemeType.ROMANTIC | 红粉蓝 | 整理成列表 |
相关文章:
Python第二语言(九、Python第一阶段实操)
目录 1. json数据格式 2. Python与json之间的数据转换 3. pyecharts模块官网 4. pyecharts快速入门(折线图) 5. pyecharts全局配置选项 5.1 set_global_ops使用 5.1.1. title_opts 5.1.2 legend_opts 5.1.3 toolbox_opts 5.1.4 visualmap_opts…...
Java异常机制
1.异常概述和异常处理机制 异常(exception)概述 异常就是程序在运行时出现的意外的,不正常的情况。 若异常产生后没有正确的处理,会导致程序的中断,程序不继续执行,以致造成损失。 2.2 异常处理机制 所以我们在开发中要一套机制来处理各种可能…...
Aws EC2,kubeadm方式安装kubernetes(k8s)
版本 docker版本:20.10.25 k8s版本(kubeadm,kubelet和kubectl):1.20.10-0 初始化 # 禁用 SELinux sudo setenforce 0 sudo sed -i s/^SELINUXenforcing$/SELINUXpermissive/ /etc/selinux/config# 关闭防火墙 sudo …...
python 比较 mysql 表结构差异
最近在做项目的时候,需要比对两个数据库的表结构差异,由于表数量比较多,人工比对的话需要大量时间,且不可复用,于是想到用 python 写一个脚本来达到诉求,下次有相同诉求的时候只需改 sql 文件名即可。 com…...
【RAG入门教程01】Langchian框架 v0.2介绍
LangChain 是一个开源框架,旨在简化使用大型语言模型 (LLM) 创建应用程序的过程。可以将其想象成一套使用高级语言工具进行搭建的乐高积木。 它对于想要构建复杂的基于语言的应用程序而又不必管理直接与语言模型交互的复杂性的开发人员特别有用。它简化了将这些模型…...
python 做成Excel并设置打印区域
记录首次用python处理Excel表格的过程。 参考文章:https://www.jianshu.com/p/5e00dc2c9f4c 程序要做的事情: 1. copy 模板文件到 output 文件夹并重命名为客户指定的文件名 2. 从 DB 查询数据并将数据写入 Excel 3. 写数据的同时, 设置每…...
SpringAI(二)
大模型:具有大规模参数和复杂计算结构的机器学习模型.通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数.其设计目的在于提高模型的表达能力和预测性能,应对复杂的任务和数据. SpringAI是一个AI工程领域的应用程序框架 大概推出时间是2023年7月份(不确定) 目的是将S…...
小白都可以通过U盘重装系统,再也不用花50块钱去安装系统啦
下载Ventoy 软件 1、今天带着大家通过Ventoy 安装Windows 11 系统。 2、首先我们通过官网如下地址:https://www.ventoy.net/cn/,找到我们对应系统的Ventoy 软件安装包。 3、通过官网可以找到软件包的地址地址,如下图所示。 4、如下就是我下…...
android 双屏异显-学习笔记
双屏异显 日常生活中,有时候会遇到 Android 设备连接两个屏幕进行显示的问题,比如酒店登记信息时,一个屏幕用于员工操作,一个屏幕显示相关信息供顾客查看。这里就涉及到 Android 的双屏异显的问题,实现Android 的双屏异显,Google 也提供了相应的 API方法 Presentation。…...
Android Lottie 体积优化实践:从 6.4 MB 降到 530 KB
一、说明 产品提出需求:用户有 8 个等级,每个等级对应一个奖牌动画。 按照常用的实现方式: 设计提供 8 个 lottie 动画(8 个 json 文件)。研发将 json 文件打包进入 APK 中。根据不同等级播放指定的动画。 每一个 …...
Django前端页面-模板继承
通过模板的继承,可以将所有共同的前端页面移到母版,那么其他页面就可以用到母版了。 这是母版 <!DOCTYPE html> <html><head>{% block css %}{% endblock %}</head><body><h1>母版</h1><div><!-- …...
使用HTML、CSS和JavaScript编写一个注册界面(一)
倘若文章或代码中有任何错误或疑惑,欢迎提出交流哦~ HTML和CSS 首先,我们需要编写一个简洁的注册界面。 简单编写下,如下: 呈现效果为: <!DOCTYPE html> <html lang"en"><head><me…...
什么是档案数字化管理
档案数字化管理指的是将传统的纸质档案转换为数字形式,并通过电子设备、软件和网络技术进行管理和存储的过程。 档案数字化管理包括以下几个步骤: 1. 扫描和数字化:将纸质档案通过扫描仪转换为数字图像或文档。可以使用OCR(光学字…...
vuInhub靶场实战系列--prime:1
免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关。 目录 免责声明前言一、环境配置1.1 靶场信息1.2 靶场配置 二、信息收集2.1 主机发现2.1.1 netdiscover2.1.2 nmap主机扫描2.1.3 arp-scan主机扫描 2.2 端口扫描…...
L48---1637. 两点之间不包含任何点的最宽垂直区域(排序)---Java版
1.题目描述 2.思路 (1)返回两点之间内部不包含任何点的 最宽垂直区域 的宽度。 我的理解是相邻两个点,按照等差数列那样,后一个数减去相邻的前一个数,才能保证两数之间不含其他数字。 (2)所以&…...
在线渲染3d怎么用?3d快速渲染步骤设置
在线渲染3D模型是一种高效的技术,它允许艺术家和设计师通过互联网访问远程服务器的强大计算能力,从而加速渲染过程。无论是复杂的场景还是高质量的视觉效果,在线渲染服务都能帮助您节省宝贵的时间。 在线渲染3D一般选择的是:云渲染…...
《软件定义安全》之二:SDN/NFV环境中的安全问题
第2章 SDN/NFV环境中的安全问题 1.架构安全 SDN强调了控制平面的集中化,从架构上颠覆了原有的网络管理,所以SDN的架构安全就是首先要解决的问题。例如,SDN实现中网络控制器相关的安全问题。 1.1 SDN架构的安全综述 从网络安全的角度&…...
Qt图表类介绍
本文主要介绍QCharts相关的模块及类。 Qt中图表模块有以下几种类型:折线图,样条曲线图,面积图,散点图,条形图,饼图,方块胡须图,蜡烛图,极坐标图。 QCharts的图表框架类似…...
时隔很久运行苍穹外卖项目,出现很多错误
中途运行了很多其他项目,maven的配置文件还被我修改了一次。导致再次运行苍穹外卖项目出现很多错误。 发现没有办法,把本地的仓库删了个干干净净。然后点击clean发现报错: Cannot access alimaven (http://mavejavascript:void(0);n.aliyun.…...
补篇协程:协程(Coroutine)里通过挂起suspend函数实现异步IO操作
异步IO的概念 异步IO是一种非阻塞的数据读写方法,异步IO与同步IO相对。 当一个异步过程调用发出后,调用者不能立刻得到结果。 实际的IO处理部件在完成操作后,会通过状态、通知或回调机制来通知调用者。 在一个CPU密集型的应用中,…...
qmt量化交易策略小白学习笔记第16期【qmt编程之获取北向南向资金(沪港通,深港通和港股通)】
qmt编程之获取北向南向资金 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 北向南向资金(沪港通,深港通和港股通) #北向南向资金交易日历 获取交易日列表…...
开源项目学习——vnote
一、介绍 vnote是一款免费且开源的markdown编辑器,用C开发,基于Qt框架,windows/linux/mac都能用。 二、编译 $ git clone --recursive https://github.com/vnotex/vnote.git $ cd vnote && mkdir build $ cd build $ cmake ../ $ …...
5_1 Linux 计划任务
5_1 Linux 计划任务 文章目录 5_1 Linux 计划任务[toc]1. crontab 命令2. 计划任务书写格式 用途:按照设置的时间间隔,为用户反复执行某一固定的系统任务 软件包:cronie、crontabs 系统服务:crond 日志文件:/var/log/c…...
接口框架项目实战-pytest(六)csv数据驱动
csv 数据驱动 为了解决数据量大 导致yaml文件重复太多 yaml_util.py import osimport jsonpath import yamlfrom pytestdemo.common.base_util import get_path from pytestdemo.common.csv_util import analysis_parametersdef read_config_file(one_node,two_node):with ope…...
【Apache Doris】周FAQ集锦:第 5 期
【Apache Doris】周FAQ集锦:第 5 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和…...
再读高考作文题
新课标I卷:讨论了随着互联网和人工智能的普及,问题是否会变得越来越少,要求考生写一篇文章,表达自己对于这一现象的联想和思考。 从来就没有什么救世主 AI也不是 一直不会写作文,直到高中,才堪堪…...
小程序中实现自定义头部导航组件
在页面中实现自定义头部导航的组件,如果仅是单个页面中需要自定义可在页面的json文件中配置"navigationStyle": “custom”,如果是项目中所有页面都想使用自定义的组件,可在app.json的window中全局配置"navigationStyle"…...
算数运算符与表达式(打印被10整除的数)
打印100以内(包含100)能被10整除的正整数 #include <stdio.h>#define UPPER 100int main() {int i 1;while (i < UPPER)if (i % 10 0)printf("%d\n", i);return 0; } 自增运算符 i 用于递增变量 i 的值。在 while 循环中…...
kv视频如何转码mp4格式,kv转换mp4最简单方法
在数字化时代,视频格式转换成为了一项日常需求。有时候我们需要把kv格式转换为MP4格式。下面将详细介绍kv转MP4的方法 方法一、 1、使用 "小白兔视频格式在线转换网站" 2、地址发给"小白兔视频格式在线转换网站"的客服,客服下载即可…...
哈夫曼树详解
哈夫曼树 例题 有n堆果子,每堆果子的质量已知,现在需要把这些果子合并成一堆,但是每次只能把两堆果子合并到一起,同时会消耗与两堆果子质量之和等值的体力。显然,在进行n-1次合并之后,就只剩下一堆了。为…...
宣传册样式/无锡网站建设方案优化
LaTex说起LaTex,又会扯出Tex、MikTeX、CJK等一系列东西。这并不是我们关注的重点,然而如果你有时间,可以当个睡前故事看看这篇文章。我们只需要知道:LaTex有一套自成体系的语法,常用于科研生产、试卷等文档排版。支持复杂公式&…...
好看的做地图分析图的网站/2022最新小学生新闻
我新注册的coder.cn域名怎么样? 呵呵。准备用来开发一些开发人员的东东。还可以开设一些二级域名的服务供大家使用,例如 http://blog.coder.cn http://domain.coder.cn http://bbs.coder.cn http://gbook.coder.cn http://dotnet.coder.cn http://java.c…...
网站备案到公司名称/手游推广赚佣金的平台
重点内容:创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值; 开头 其实组件感觉很绕,但是也就几个点,理清思路,学起来就比较容易,所…...
网站开发架构分类/培训机构
手工合并报表时,经常遇到很多问题,而且效率低下,而专业的合并报表软件只需要几步,就能快速准确汇总各子报表,生成合并的报表并动态展示。尤其是对于财务报表来说,能节省大量手工合并做账的重复做工精力。…...
公司门户网站源码/企业网络营销策划案例
局域网计算机文件共享,您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限2010-05-31 15:07:00| 分类: 电脑技术 | 标签:|字号大中小如果出现“xxx计算机无法访问,您可能没有权限使用网络资源。请与…...
百度网站免费电话/网站排名软件推荐
Fun 0 直接获取日期再次计算时间戳 function fun00(){let today new Date();return new Date(today.toDateString()).getTime();} 复制代码function fun01(){let today new Date();return new Date(today.getFullYear()/today.getMonth()1/today.getDate()).getTime();} 复制…...