当前位置: 首页 > news >正文

【数据可视化-93】使用 Pyecharts 绘制旭日图:步骤与数据组织形式

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【数据可视化-93】使用 Pyecharts 绘制旭日图:步骤与数据组织形式

    • 一、引言
    • 二、旭日图的特点
    • 三、数据组织形式
      • 2.1 多层级数据组织
    • 四、绘制旭日图的步骤
      • 4.1 安装 Pyecharts
      • 4.2 准备数据
      • 4.3 初始化旭日图
      • 4.4 添加数据
      • 4.5 设置全局选项
      • 4.6 渲染图表
    • 五、运行结果
    • 六、高级旭日图示例
    • 七、总结


一、引言

  在数据可视化中,旭日图(Sunburst Chart)是一种非常直观且美观的图表,用于展示层次化的数据结构。它类似于饼图,但可以展示更多的层级关系。本文将详细介绍如何使用 Pyecharts 绘制旭日图,并重点介绍旭日图的数据组织形式。

二、旭日图的特点

  旭日图是一种层次化的饼图,主要用于展示多层级的数据结构。它的每一层代表一个层级,每个扇区的大小表示该层级的占比。旭日图特别适合展示复杂的层级关系,如组织结构、文件系统、产品分类等。

三、数据组织形式

  旭日图的数据组织形式通常是一个嵌套的列表结构,每个元素代表一个层级,每个层级又包含多个子元素。每个子元素是一个包含以下字段的字典:

  • name:扇区的名称。
  • value:扇区的值,表示该扇区的大小。
  • children:子层级的列表,如果该扇区没有子层级,则可以省略。

  以下是一个简单的例子:

data = [{"name": "一级分类","value": 10,"children": [{"name": "二级分类1", "value": 4},{"name": "二级分类2", "value": 6},],}
]

2.1 多层级数据组织

  旭日图支持多层级的数据结构,每个层级可以包含多个子层级。以下是一个包含三级分类的数据结构:

data = [{"name": "一级分类","value": 10,"children": [{"name": "二级分类1", "value": 4},{"name": "二级分类2","value": 6,"children": [{"name": "三级分类1", "value": 3},{"name": "三级分类2", "value": 3},],},],}
]

四、绘制旭日图的步骤

4.1 安装 Pyecharts

  在开始之前,确保已经安装了 Pyecharts。可以通过以下命令安装:

pip install pyecharts

4.2 准备数据

  根据旭日图的数据组织形式,准备你的数据。以下是一个完整的例子:

data = [{"name": "一级分类","value": 10,"children": [{"name": "二级分类1", "value": 4},{"name": "二级分类2","value": 6,"children": [{"name": "三级分类1", "value": 3},{"name": "三级分类2", "value": 3},],},],},
]

4.3 初始化旭日图

  使用 Pyecharts 的 Sunburst 组件来绘制旭日图。

from pyecharts.charts import Sunburst
from pyecharts import options as opts# 初始化旭日图
sunburst = Sunburst(init_opts=opts.InitOpts(width="800px", height="800px"))

4.4 添加数据

  将准备好的数据添加到旭日图中。

sunburst.add(series_name="",data_pair=data,radius=[0, "90%"],label_opts=opts.LabelOpts(is_show=True, position="inside"),itemstyle_opts=opts.ItemStyleOpts(border_color="#fff"),
)

4.5 设置全局选项

  设置旭日图的全局选项,如标题、视觉映射等。

sunburst.set_global_opts(title_opts=opts.TitleOpts(title="旭日图示例", subtitle="数据来源:自定义"),visualmap_opts=opts.VisualMapOpts(pos_left="left",pos_top="top",min_=0,max_=20,orient="horizontal",is_piecewise=True,pieces=[{"min": 15, "max": 20, "label": "15-20", "color": "#f44336"},{"min": 10, "max": 14, "label": "10-14", "color": "#ff9800"},{"min": 5, "max": 9, "label": "5-9", "color": "#ffeb3b"},{"min": 0, "max": 4, "label": "0-4", "color": "#4caf50"},],),
)

4.6 渲染图表

  将旭日图渲染为 HTML 文件,以便查看效果。

sunburst.render("旭日图示例.html")

五、运行结果

  运行上述代码后,会生成一个名为 旭日图示例.html 的文件。打开该文件,可以看到如下效果:

六、高级旭日图示例

  以下是一个更高级的旭日图示例,展示了如何使用更多的配置选项来增强图表的视觉效果。

from pyecharts.charts import Sunburst
from pyecharts import options as opts# 准备数据
data = [{"name": "一级分类","value": 10,"children": [{"name": "二级分类1", "value": 4},{"name": "二级分类2","value": 6,"children": [{"name": "三级分类1", "value": 3},{"name": "三级分类2", "value": 3},],},],},{"name": "一级分类2","value": 20,"children": [{"name": "二级分类3", "value": 10},{"name": "二级分类4", "value": 10},],},
]# 初始化旭日图
sunburst = Sunburst(init_opts=opts.InitOpts(width="1000px", height="600px"))# 添加数据
sunburst.add("",data_pair=data,highlight_policy="ancestor",radius=[0, "95%"],sort_="null",levels=[{},{"r0": "15%","r": "35%","itemStyle": {"borderWidth": 2},"label": {"rotate": "tangential"},},{"r0": "35%", "r": "70%", "label": {"align": "right"}},{"r0": "70%","r": "72%","label": {"position": "outside", "padding": 3, "silent": False},"itemStyle": {"borderWidth": 3},},],
)# 设置全局选项
sunburst.set_global_opts(title_opts=opts.TitleOpts(title="Sunburst-官方示例"),visualmap_opts=opts.VisualMapOpts(pos_left="left",pos_top="top",min_=0,max_=20,orient="horizontal",is_piecewise=True,pieces=[{"min": 15, "max": 20, "label": "15-20", "color": "#f44336"},{"min": 10, "max": 14, "label": "10-14", "color": "#ff9800"},{"min": 5, "max": 9, "label": "5-9", "color": "#ffeb3b"},{"min": 0, "max": 4, "label": "0-4", "color": "#4caf50"},],),
)# 设置系列选项
sunburst.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}"))# 渲染图表
sunburst.render("旭日图示例1.html")

七、总结

  本文详细介绍了如何使用 Pyecharts 绘制旭日图,并重点介绍了旭日图的数据组织形式。通过嵌套的列表结构,我们可以轻松地组织和展示多层级的数据。旭日图不仅美观,而且非常直观,特别适合展示复杂的层级关系,我们还可以使用在数据中的颜色设置来规定绘制图形的颜色,设置"itemStyle": {“color”: “#e65832”}参数即可。


http://www.lryc.cn/news/625607.html

相关文章:

  • 从接口自动化测试框架设计到开发(三)主流程封装、返回数据写入excel
  • 传统艾灸VS七彩喜艾灸机器人:同样的艾香,多了4分“巧”
  • JetBrains系列产品-IDEA/PyCharm/GoLand自动生成方法返回值的快捷键,查看方法参数的快捷键。
  • 0819 使用IP多路复用实现TCP并发服务器
  • Java -- 用户线程和守护线程--线程同步机制
  • Java开发过程中实用的技术点(一)
  • LIA-X - 一张照片生成任意表情肖像动画视频 精准操控面部动作 支持50系显卡 一键整合包下载
  • 免费dll修复?缺少xxx.dll?【图文详解】Visual C++运行库安装?无法定位程序输入点于动态链接库?
  • VulKan笔记(九)-着色器
  • 机器学习--决策树2
  • 力扣57:插入区间
  • 决策树二-泰坦尼克号幸存者
  • 决策树(2)
  • FPGA入门-多路选择器
  • 决策树1.1
  • 机器学习(决策树2)
  • Leetcode 深度优先搜索 (7)
  • Python爬虫第二课:爬取HTML静态网页之《某某小说》 小说章节和内容完整版
  • 【LeetCode】3655. 区间乘法查询后的异或 II (差分/商分 + 根号算法)
  • Mybatis执行SQL流程(四)之MyBatis中JDK动态代理
  • 【HTML】3D动态凯旋门
  • Leetcode 343. 整数拆分 动态规划
  • C++入门自学Day14-- Stack和Queue的自实现(适配器)
  • 神经网络中的那些关键设计:从输入输出到参数更新
  • 面试题储备-MQ篇 3-说说你对Kafka的理解
  • 图论\dp 两题
  • 设计模式笔记_行为型_命令模式
  • 【React】事件绑定和组件基础使用
  • 从线性回归到神经网络到自注意力机制 —— 激活函数与参数的演进
  • java基础(十二)redis 日志机制以及常见问题