【python笔记】datafram的时间动态可视化 pyecharts地图

import pandas as pd# 假设DataFrame是这样的:  
df = pd.DataFrame({  'year': [2014, 2015, 2016, 2014, 2015, 2016, 2014, 2015, 2016],  'province': ['广东省', '广东省', '河南省', '湖南省', '北京市', '北京市', '上海市', '新疆维吾尔自治区', '上海市'],  'values': [100, 150, 75,120, 80, 200, 110, 200, 190]  
})  

在这里插入图片描述

from pyecharts import options as opts
from pyecharts.charts import Map, Timeline
from pyecharts.globals import CurrentConfig, NotebookType# 设置jupyter lab可视的前提条件
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB# 按照年份对DataFrame进行分组,以便为每个年份创建地图  
grouped_df = df.groupby('year')  t = Timeline()  # 遍历分组后的数据,为每个年份创建地图并添加到Timeline中  
for year, year_df in grouped_df:  # 创建Map对象,并添加数据map_chart = (  Map()  .add(series_name="商家A", data_pair=year_df[['province', 'values']].to_numpy(), maptype="china")   .set_series_opts(label_opts=opts.LabelOpts(is_show=False))     # 是否显示省份名称.set_global_opts(title_opts=opts.TitleOpts(title=f"Map-{year}年某些数据"),  visualmap_opts=opts.VisualMapOpts(max_=df['values'].quantile())  # 默认值min_=0, max_=100。即是否用不同深浅的颜色填充MAP)  )  # 将地图添加到Timeline中,并设置时间点的名称  t.add(chart=map_chart, time_point="{}年".format(year))  # def timeline.add(self, chart: Base, time_point: str):t.render_notebook()

在这里插入图片描述

附注:

# github docu: pyecharts/options/series_options.py
class LabelOpts(BasicOpts):def __init__(self,is_show: bool = True,position: Optional[Union[str, Sequence]] = None,color: Optional[str] = None,distance: Union[Numeric, Sequence, None] = None,font_size: Optional[Numeric] = None,font_style: Optional[str] = None,font_weight: Optional[str] = None,font_family: Optional[str] = None,rotate: Optional[Numeric] = None,margin: Optional[Numeric] = 8,interval: Union[Numeric, str, None] = None,horizontal_align: Optional[str] = None,vertical_align: Optional[str] = None,formatter: Optional[JSFunc] = None,background_color: Optional[str] = None,border_color: Optional[str] = None,border_width: Optional[Numeric] = None,border_radius: Optional[Numeric] = None,padding: Union[Numeric, Sequence[Numeric], None] = None,text_width: Optional[Numeric] = None,text_height: Optional[Numeric] = None,overflow: Optional[str] = None,rich: Optional[dict] = None,):self.opts: dict = {"show": is_show,"position": position,"color": color,"distance": distance,"rotate": rotate,"margin": margin,"interval": interval,"fontSize": font_size,"fontStyle": font_style,"fontWeight": font_weight,"fontFamily": font_family,"align": horizontal_align,"verticalAlign": vertical_align,"formatter": formatter,"backgroundColor": background_color,"borderColor": border_color,"borderWidth": border_width,"borderRadius": border_radius,"padding": padding,"width": text_width,"height": text_height,"overflow": overflow,"rich": rich,}
# github docu: pyecharts/options/global_options.py
class TitleOpts(BasicOpts):def __init__(self,is_show: bool = True,title: Optional[str] = None,title_link: Optional[str] = None,title_target: Optional[str] = "blank",subtitle: Optional[str] = None,subtitle_link: Optional[str] = None,subtitle_target: Optional[str] = "blank",pos_left: Optional[str] = None,pos_right: Optional[str] = None,pos_top: Optional[str] = None,pos_bottom: Optional[str] = None,padding: Union[Sequence, Numeric] = 5,item_gap: Numeric = 10,text_align: str = "auto",text_vertical_align: str = "auto",is_trigger_event: bool = False,title_textstyle_opts: Union[TextStyleOpts, dict, None] = None,subtitle_textstyle_opts: Union[TextStyleOpts, dict, None] = None,):self.opts: Sequence = [{"show": is_show,"text": title,"link": title_link,"target": title_target,"subtext": subtitle,"sublink": subtitle_link,"subtarget": subtitle_target,"left": pos_left,"right": pos_right,"top": pos_top,"bottom": pos_bottom,"padding": padding,"itemGap": item_gap,"textAlign": text_align,"textVerticalAlign": text_vertical_align,"triggerEvent": is_trigger_event,"textStyle": title_textstyle_opts,"subtextStyle": subtitle_textstyle_opts,}]
# github docu: pyecharts/options/global_options.py
class VisualMapOpts(BasicOpts):def __init__(self,is_show: bool = True,type_: str = "color",min_: Numeric = 0,max_: Numeric = 100,range_: Sequence[Numeric] = None,range_text: Optional[Sequence] = None,range_color: Optional[Sequence[str]] = None,range_size: Optional[Sequence[int]] = None,range_opacity: Union[Numeric, Sequence[Numeric]] = None,orient: str = "vertical",pos_left: Optional[str] = None,pos_right: Optional[str] = None,pos_top: Optional[str] = None,pos_bottom: Optional[str] = None,padding: Union[int, Sequence[int]] = 5,split_number: int = 5,series_index: Union[Numeric, Sequence, None] = None,is_hover_link: bool = True,dimension: Optional[Numeric] = None,is_calculable: bool = True,is_piecewise: bool = False,is_inverse: bool = False,precision: Optional[int] = None,pieces: Optional[Sequence] = None,out_of_range: Optional[dict] = None,item_width: int = 0,item_height: int = 0,background_color: Optional[str] = None,border_color: Optional[str] = None,border_width: int = 0,textstyle_opts: Union[TextStyleOpts, dict, None] = None,):_inrange_op: dict = {}if type_ == "color":range_color = range_color or ["#50a3ba", "#eac763", "#d94e5d"]_inrange_op.update(color=range_color)elif type_ == "size":range_size = range_size or [20, 50]_inrange_op.update(symbolSize=range_size)if range_opacity is not None:_inrange_op.update(opacity=range_opacity)_visual_typ = "piecewise" if is_piecewise else "continuous"if is_piecewise and item_width == 0 and item_height == 0:item_width, item_height = 20, 14elif item_width == 0 and item_height == 0:item_width, item_height = 20, 140self.opts: dict = {"show": is_show,"type": _visual_typ,"min": min_,"max": max_,"text": range_text,"textStyle": textstyle_opts,"range": range_,"inRange": _inrange_op,"calculable": is_calculable,"inverse": is_inverse,"precision": precision,"splitNumber": split_number,"dimension": dimension,"seriesIndex": series_index,"hoverLink": is_hover_link,"orient": orient,"left": pos_left,"top": pos_top,"bottom": pos_bottom,"right": pos_right,"padding": padding,"showLabel": True,"itemWidth": item_width,"itemHeight": item_height,"outOfRange": out_of_range,"backgroundColor": background_color,"borderColor": border_color,"borderWidth": border_width,}if is_piecewise:self.opts.update(pieces=pieces)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Servlet文件嵌套<script>来显示提示框而出现乱码的解决方案

主要出现的原因就是编码不统一导致无法解析对话框中的字符串 我的解决方案: 使用 URL 的编码格式,然后再使用js中的decodeURIComponent函数解析URL编码的字符串,并且恢复其原始字符串内容 将你写的传统的编码格式改为 PrintWriter out resp.getWriter(…

多目标应用:MSSA多目标樽海鞘优化算法求解无人机三维路径规划(MATLAB代码)

一、无人机多目标优化模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节,无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找…

YOLOV8 pycharm

1 下载pycharm 社区版 https://www.jetbrains.com/zh-cn/pycharm/download/?sectionwindows 2 安装 3 新建 4 选择 文件-> setting 配置环境变量 5 添加conda 环境

基本STL使用

一 、关于vector 在STL中有一个称为vector的数据结构&#xff0c;可以用来代替数组。 定义Book特性 private:vector<string> shelf_books;Notic : 类中不能使用类似的定义&#xff1a;vector<sttring> shelf_boos( 10 ); 定义Book方法 public:void setName(str…

5.C++动态内存管理(超全)

目录 1 .C/C 内存分布 2. C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 3.3 operator new函数 3.4 定位new表达式(placement-new) &#xff08;了解&#xff09; 4. 常…

Java 基础重点知识-(Java 语言特性、数据类型、常见类、异常)

文章目录 Java 语言特性形参和实参的区别是什么?值传递和引用传递的区别?Java 是值传递还是引用传递?final 的作用是什么?final finally finalize 有什么不同?static 的作用是什么?static 和 final 的区别是什么? Java 数据类型Java基本数据类型有几种? 各占多少位?基…

【MySQL精炼宝库】数据库的约束 | 表的设计 | 聚合查询 | 联合查询

目录 一、数据库约束 1.1 约束类型&#xff1a; 1.2 案例演示&#xff1a; 二、表的设计 2.1 一对一: 2.2 一对多: 2.3 多对多: 2.4 内容小结&#xff1a; 三、新增 四、查询 4.1 聚合查询&#xff1a; 4.1.1 聚合函数&#xff1a; 4.1.2 GROUP BY子句&#xff1a…

windows驱动开发-中断(一)

中断是windows中最难的一部分&#xff0c;这是因为中断本身属于操作系统的一部分&#xff0c;理解了中断和内存&#xff0c;对整个系统也就了解了。 中断部分会先从中断优先级、中断处理、中断服务例程入手&#xff0c;大概讲述一下中断的概念&#xff1b;接着从中断的一般实现…

C语言:指针详解(3)

目录 一、字符指针 二、数组指针 1.数组指针的定义 2.数组指针的初始化 3. 二维数组传参的本质 三、函数指针 1.函数指针的创建 2.函数指针的使用 3.有趣的代码(1) 4.有趣的代码(2) 四、typedef关键字 1.typedef的使用方法 2.typedef和#define的区别 五、函数指针…

前端性能优化知识梳理

1.重要性 当我们面试的时候&#xff0c;前端性能优化方面算是必考的知识点&#xff0c;但是工作中我们又很少会重点的对项目进行前端优化&#xff0c;它真的不重要吗&#xff1f; 如果我们可以将后端响应时间缩短一半&#xff0c;整体响应时间只能减少5%~10%。而如果关注前端…

imx6ull启动方式和镜像文件烧写

文章目录 前言一、BOOT启动方式1.串行下载2.内部BOOT模式 二、内部BOOT模式详细流程1.启动设备的选择2.镜像烧写 总结 前言 &#x1f4a6; I.MX6Ull 支持多种启动方式以及启动设备&#xff0c;比如可以从 SD/EMMC、NAND Flash、QSPI Flash等启动。用户可以根据实际情况&#x…

【web安全】-- 命令执行漏洞详解

本文将从原理开始介绍命令执行漏洞并附有三个实例来供各位客官学习 文章目录 一、什么是命令执行漏洞二、出现的原因三、有可能存在命令执行漏洞的函数&#xff08;php&#xff09;1、利用一些函数来实现命令执行2、直接执行系统命令的函数 四、命令拼接符号1、Windows2、linux…

QT:不同UI间数据,信号的交互

前言 接上文&#xff0c;手动绘制的矩形框毕竟还是在上位机的播放界面内&#xff0c;想要把数据发送给3559还是需要通过串口或者网口发送&#xff0c;没有部署在一个界面就需要不同UI间数据和信号进行交互了&#xff0c;数据还好说&#xff0c;全局变量都可以做到&#xff0c;信…

【c++】反向迭代器的探究实现

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 在list中我们实现了正向的迭代器&#xff0c;学习完优先级队列后&#xff0c;我们也对适配器模式有了一个深刻的理解&#xff0c;这篇文章基于这种模式下&#xff0c;实现各类容器的反向迭…

Docker-compose部署LTC同步节点

1、下载ltc程序包&#xff0c;litecoin下载地址 下载页 mkdir /data/docker-compose/ltc cd /data/docker-compose/ltc https://github.com/litecoin-project/litecoin/releases/download/v0.21.3/litecoin-0.21.3-x86_64-linux-gnu.tar.gz2、编写dockerfile和bitcoin.conf b…

我开始接单/兼职/搞副业/建设个人社区,为自己谋后路了。

我开始接单/兼职/搞副业/建设个人社区&#xff0c;为自己谋后路了。 简述 大家好&#xff0c;我是小荣&#xff0c;一个前端开发程序员。我最近开始在业余时间接私单了&#xff0c;也在想一些能够带来成长&#xff0c;收入的副业&#xff0c;主要也是为了自己谋后路&#xff…

C语言:数据结构(双向链表)

目录 1、双向链表的结构2、顺序表和双向链表的优缺点分析3、双向链表的实现 1、双向链表的结构 注意&#xff1a;这⾥的“带头“跟前面我们说的“头节点”是两个概念&#xff0c;实际前面的在单链表阶段称呼不严谨&#xff0c;但是为了更好的理解就直接称为单链表的头节点。 带…

SSH远程登录实操实验!

ssh远程登录协议&#xff1a;默认端口号22 以下实验7-2是服务端&#xff0c;7-1是客户端 服务器的相关信息&#xff1a; 服务名称&#xff1a;sshd 服务端主程序&#xff1a;/usr/sbin/sshd 服务端配置文件&#xff1a;/etc/ssh/sshd_config 客户端相关信息&#xff1a; …

python的输入输出(爽文,备忘,查询,友好)

Python中的输入输出主要涉及到输入函数和输出函数。 输出函数&#xff1a;print() print() 函数用于将信息输出到屏幕上。它可以输出字符串、变量的值&#xff0c;以及其他各种数据类型。 name "Alice" age 30 print("姓名:", name, "年龄:&quo…

ip ssl证书无限端口网站

IP SSL证书是由CA认证机构颁发的一种特殊数字证书。大部分SSL数字证书都需要用户使用域名进行申请&#xff0c;想要对公网IP地址加密实现https访问就需要申请IP SSL证书。IP SSL证书采用了强大的加密算法&#xff0c;可以有效地防止数据在传输过程中被窃取或篡改&#xff0c;具…