局部整体(五)利用python绘制旭日图

news2024/12/24 9:55:45

局部整体(五)利用python绘制旭日图

旭日图( Sunburst Charts)简介

1

由于其形状像太阳光由内向外辐射出来,所以叫SunBurst(太阳爆发),中文也叫日出图。是多个层级的环图/饼图的拓展,可以显示多个层级的整体分布关系。

快速绘制

  1. 基于plotly

    # 基于plotly.express(自定义程度低,代码量较少)
    
    import plotly.express as px
    import numpy as np
    
    df = px.data.gapminder().query("year == 2007")
    fig = px.sunburst(df, path=['continent', 'country'], values='pop',
                      color='lifeExp', hover_data=['iso_alpha'],
                      color_continuous_scale='RdBu',
                      color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))
    fig.show()
    

    1

定制多样化的圆环图

自定义旭日图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。

基于plotly.graph_objects可以自定义更为灵活的旭日图

# 基于plotly.graph_objects(自定义程度高,代码量较大)

import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
import numpy as np

df = px.data.gapminder().query("year == 2007")

def build_tree(df, levels, value_columns):
    '''
    将df多层级数据转化为两列,分别表示自节点(label)和父节点(parent)。value_columns为统计值(不同层级汇总后的值)
    '''
    dfs = []  # 临时存储的df列表
    for i, level in enumerate(levels):
        dfg = df.groupby(levels[i:]).agg(value_columns).reset_index()
        df_level = pd.DataFrame({'label': dfg[level], 
                                 'parent': dfg[levels[i + 1]] if i + 1 < len(levels) else '', 
                               })
        for value_column in value_columns.keys():
            df_level[value_column] = dfg[value_column]
        dfs.append(df_level)

    df_tree = pd.concat(dfs, ignore_index=True)
    return df_tree

levels = ['country','continent']
# 这里对lifeExp只做简单的平均,plotly.express里的color是按照value作为权重进行加权平均计算的
value_columns = {'pop': 'sum', 'lifeExp': 'mean'} 
df_tree = build_tree(df, levels, value_columns)

fig =go.Figure(go.Sunburst(
    labels=df_tree['label'],
    parents=df_tree['parent'],
    values=df_tree['pop'],
    branchvalues="total",
    hovertext=df['pop'],
    marker=dict(
        colors=df_tree['lifeExp'], 
        colorscale='RdBu',
        cmid=np.average(df['lifeExp'], weights=df['pop']),
        colorbar=dict(
              title='LifeExp'
        )    
    ),
    hovertemplate='<b>%{label} </b> <br> Pops: %{value}<br> lifeExp: %{color:.2f}',
))
fig.update_layout(margin = dict(t=0, l=0, r=0, b=0))

fig.show()

3

总结

以上利用plotly的express模块快速绘制旭日图,也通过plotly的graph_objects更为灵活的自定义旭日图。

共勉~

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

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

相关文章

GNU的编译工具链

文章目录 GNU的编译工具链 GNU的编译工具链 预编译器cpp 编译器 cc1 汇编器 as 链接器 ld 其中cpp和cc1属于gcc的一部分&#xff0c;as和ld属于binutils的一部分。

MySQL-如何定位慢查询

慢查询&#xff1a;页面加载过慢&#xff0c;接口压测响应时间过长&#xff08;超过1s&#xff09;

STM32基础篇:PWR

PWR简介 PWR&#xff08;Power Control&#xff09;&#xff0c;为电源控制模块&#xff0c;负责管理STM32内部的电源供电部分&#xff0c;可以实现可编程电压监测器和低功耗模式的功能。 1、可编程电压监测器 简称PVD&#xff0c;可以监控VDD电源电压。当VDD下降到PVD阀值以…

yum安装nexus3详细教程分享

创建nexus用户&#xff0c;类似于这种中间件&#xff0c;尽量做到专户管理&#xff0c;当然如果你喜欢直接用root权限安装&#xff0c;更改配置文件也是可以支持的。但是实际上大多情况下&#xff0c;在生产环境是拿不到root权限的。 useradd -m nexus为nexus用户设置密码 pass…

AS-V1000视频监控平台客户端播放实时视频时,一些视频画面显示的时间不准确的解决方法

目录 一、背景说明 二、解决过程 1、查看设备时间 2、查看服务器时间 3、ntp介绍 1) ntp的概念 2) ntp的同步方式 3) ntp的优势 4、自动校准服务器和设备时间 1) 下载ntp 2) 修改ntp.conf 3) 重启ntp服务&#xff0c;自动校准时间 4) 国标重新接入设备自动同步时间 三、问题解…

zStorage在海光CPU架构上的性能调优

前言 随着"信创"的东风吹遍大江南北&#xff0c;各家公司都开始了国产化的适配道路。zStorage团队当然也没有缺席&#xff0c;去年我们适配了华为的鲲鹏架构&#xff0c;整体性能水平达到了Intel架构的70%以上。今年我们开始着力于海光CPU架构的适配。与鲲鹏架构相比…

【linux学习指南】权限管理与文件访问设置方法

文章目录 &#x1f4dd;前言&#x1f320; bc指令&#x1f309;uname –r指令 &#x1f320;重要的几个热键[Tab],[ctrl]-c, [ctrl]-d&#x1f309;关机 &#x1f320;命令扩展&#x1f309;shell命令以及运行原理 &#x1f320;Linux权限的概念&#x1f320; Linux权限管理&am…

善用工具:开发与效率

文章目录 常用工具Visual Studio Code&#xff08;VS Code&#xff09;GitDockerPostman 效率对比VS Code 与 Sublime TextGit 与 SVNDocker 与虚拟机Postman 与 cURL 近来趋势人工智能与编程工具的结合低代码与无代码平台版本控制的演进准备自适应的开发环境与新兴技术的整合 …

Linux驱动(三):字符设备驱动之杂项

目录 一、Linux设备分类二、设备号与字符设备的编码方式1.设备号2.字符设备的编码方式 三、杂项字符设备驱动的初级编写 一、Linux设备分类 Linux下一切皆文件&#xff0c;所有的硬件设备在Linux应用层中都会被抽象成文件&#xff0c;所有对硬件设备的操作到应用层中&#xff0…

电脑垃圾箱删除的东西怎么找回来?介绍四个有效方法

在日常使用电脑的过程中&#xff0c;‌我们可能会不小心删除一些重要文件&#xff0c;‌而这些文件往往会被放入垃圾箱&#xff08;‌回收站&#xff09;‌。‌但有时候&#xff0c;‌我们可能会清空垃圾箱&#xff0c;‌导致这些文件看似永久丢失。‌其实&#xff0c;‌即使垃…

RFID光触发标签在汽车制造行业的深度应用

汽车制造行业作为现代工业的重要支柱&#xff0c;面临着日益激烈的市场竞争和不断提高的客户需求。传统的汽车制造管理方式在生产过程监控、零部件管理、质量追溯等方面存在诸多不足&#xff0c;而 RFID 光触发标签技术的出现为汽车制造行业的转型升级提供了有力的解决方案。 …

用友大易:以AI创新驱动招聘未来,引领2024 AIGC商业新趋势

更多内容前往个人网站&#xff1a;孔乙己大叔 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度渗透并重塑各行各业&#xff0c;其中&#xff0c;企业招聘领域也不例外。8月22日&#xff0c;由创业邦及2024 AGI商业趋势大会组委会主办的…

Mysql基础练习题 610.判断三角形 (力扣)

题目&#xff1a; 对每三个线段报告它们是否可以形成一个三角形 题目连接&#xff1a; https://leetcode.cn/problems/triangle-judgement/description/ 建表插入数据&#xff1a; Create table If Not Exists Triangle (x int, y int, z int) Truncate table Triangle in…

综合评价 | 基于层次-熵权-博弈组合法的综合评价模型(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 AHP层次分析法是一种解决多目标复杂问题的定性和定量相结合进行计算决策权重的研究方法。该方法将定量分析与定性分析结合起来&#xff0c;用决策者的经验判断各衡量目标之间能否实现的标准之间的相对重要程度&#…

SAP CN22释放物料的可用性的操作方法

SAP PS系统&#xff0c;CN22要释放网络的可用性&#xff08;直发物料号的需求&#xff09;&#xff0c; 必输要操作路径正确&#xff0c;或者操作的界面正确&#xff0c;否则保存后无法释放可用性。 先进入作业一览 然后进入作业的组件&#xff0c;对网络赋值的界面&#xff0…

实训day41(9.2)

[rootlocalhost ~]# docker stop 30 //停止nginx容器 30 [rootlocalhost ~]# docker ps --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …

银河麒麟v10-sp3 安装Tomcat10最新版

tomcat官方地址---Apache Tomcat - Apache Tomcat 10 Software Downloads 下载这个即可 Core&#xff1a; 含义&#xff1a;Core代表Tomcat的核心程序&#xff0c;即Tomcat的正式二进制发布版本。这是大多数用户做开发或学习时应该下载的版本。用途&#xff1a;包含了Tomcat服…

53.x86游戏实战-XXX获取人物状态

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

一套高效、稳定的自卸车自动充电系统

随着工业自动化和智能化水平的不断提升&#xff0c;无人化作业已成为现代生产线的必然趋势。在山西地区的室内生产条件下&#xff0c;富唯智能凭借其在自卸车充电系统领域的深厚积累&#xff0c;成功设计出一套高效、稳定的自卸车自动充电系统&#xff0c;为工业领域带来革命性…

GeoScene Pro教程(003):手机拍摄带有坐标的照片批量上图到GeoScenePro

文章目录 1、创建【地图】工程2、添加底图3、照片转点4、更改符号5、设置时间动画1、创建【地图】工程 2、添加底图 选中【地图】选项卡下的【底图】按钮 ,选择适合的底图。 3、照片转点 1、查看图片GPS,右键【属性】,这样就可以确保照片可以转点 2、选中工具栏的【分析】…