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

Pyecharts之散点图的视觉扩展

在数据可视化中,散点图是一种强大的工具,可用于展示数据点在二维平面上的分布情况。通过添加各种视觉组件,我们可以让散点图变得更加丰富和具有表现力,更能反映数据的多维度特征。本文将详细解读如何为散点图添加不同的视觉组件,包括根据数据大小映射图形大小、同时映射图形大小和颜色,以及综合运用大小、颜色和透明度等多维度的视觉组件。

一、散点图添加视觉组件(大小)

以下是 scatter_with_visualmap_size() 函数的代码,它展示了如何为散点图添加根据数据大小映射图形大小的视觉组件:

from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.faker import Fakerdef scatter_with_visualmap_size():scatter = Scatter(init_opts=opts.InitOpts(theme='light',width='1000px',height='600px'))scatter.add_xaxis(Faker.choose())scatter.add_yaxis('', Faker.values())# 设置视觉组件scatter.set_global_opts(visualmap_opts=opts.VisualMapOpts(type_='size'))return scatterchart = scatter_with_visualmap_size()
chart.render_notebook()

代码解释

  • 首先,我们导入了所需的模块,包括 Scatter 类、options 模块和 Faker 模块。
  • 创建 Scatter 实例 scatter,并使用 init_opts 设置主题、宽度和高度,使图表更具美感和合适的尺寸。
  • 使用 Faker.choose()x 轴生成一些假数据,Faker.values()y 轴生成一些数据。
  • set_global_opts 方法中,通过 visualmap_opts 启用视觉映射,将 type_ 设置为 size。这意味着散点的大小将根据数据的大小进行映射,不过这里的数据大小是根据 y 轴的数据默认进行映射,因为没有明确指定 dimension 参数。

通过这个简单的设置,我们可以直观地看到散点的大小反映了数据的某种特征,从而让用户能快速分辨不同数据点在大小维度上的差异。

二、散点图添加视觉组件(大小与颜色)

scatter_with_visualmap_color_size() 函数展示了如何同时根据数据大小和另一维度映射图形大小与颜色:

from pyecharts.charts import *
from pyecharts import options as opts
import randomx_data = [random.randint(0, 100) for _ in range(30)]
y_data = [(random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)) for _ in range(30)]def scatter_with_visualmap_color_size():scatter = Scatter(init_opts=opts.InitOpts(theme='light',width='1000px',height='600px'))scatter.add_xaxis(x_data)scatter.add_yaxis('', y_data)# 多个映射维度通过 list 形式传入# dimension 指定数据维度scatter.set_global_opts(visualmap_opts=[opts.VisualMapOpts(is_show=True, type_='size', dimension=2, pos_top='20%'),opts.VisualMapOpts(is_show=True, type_='color', dimension=3,  pos_top='60%')],xaxis_opts=opts.AxisOpts(type_="value"))return scatterchart = scatter_with_visualmap_color_size()
chart.render_notebook()

代码解释

  • 导入所需模块,并使用 random 模块生成随机数据。
  • 创建 Scatter 实例,设置初始化选项。
  • x 轴添加 x_data,为 y 轴添加 y_data。这里 y_data 中的元素是元组,包含多个维度的数据。
  • set_global_opts 中,使用 visualmap_opts 列表添加两个视觉映射组件:
    • 第一个 opts.VisualMapOpts 中,type_='size'dimension=2,表示根据 y_data 元组中第二个元素的大小来映射散点的大小,pos_top='20%' 控制该视觉映射组件在图表中的垂直位置。
    • 第二个 opts.VisualMapOpts 中,type_='color'dimension=3,表示根据 y_data 元组中第三个元素的大小来映射散点的颜色,pos_top='60%' 控制该视觉映射组件在图表中的位置。

通过这种方式,我们可以同时观察到散点的大小和颜色随着数据的不同维度发生变化,从两个维度为用户提供更多的数据信息。

三、散点图添加视觉组件(大小、颜色与透明度)

scatter_with_visualmap_color_size_opacity() 函数则展示了散点图多维度视觉组件的综合应用:

from pyecharts.charts import *
from pyecharts import options as opts
import randomx_data = [random.randint(0, 100) for _ in range(30)]
y_data = [(random.randint(0, 100), random.randint(0, 100), random.randint(0, 100), random.randint(0, 100))for _ in range(30)]def scatter_with_visualmap_color_size_opacity():scatter = Scatter(init_opts=opts.InitOpts(theme='light',width='1000px',height='600px'))scatter.add_xaxis(x_data)scatter.add_yaxis('', y_data)# 多个映射维度通过 list 形式传入# dimension 制定数据维度scatter.set_global_opts(visualmap_opts=[opts.VisualMapOpts(is_show=True, type_='size', dimension=2, pos_top='10%'),opts.VisualMapOpts(is_show=True, type_='color', dimension=3, pos_top='40%'),opts.VisualMapOpts(is_show=True, type_='opacity', dimension=4,# VisualMapOpt 中对于 range_opacity 没给默认值,需要自行设定range_opacity=[0.2, 1], pos_top='70%')],xaxis_opts=opts.AxisOpts(type_="value"))return scatterchart = scatter_with_visualmap_color_size_opacity()
chart.render_notebook()

代码解释

  • 同样导入所需模块并生成随机数据。
  • 创建 Scatter 实例并设置初始化选项。
  • set_global_opts 中使用 visualmap_opts 列表添加三个视觉映射组件:
    • 第一个 opts.VisualMapOpts 用于根据 y_data 元组中第二个元素的大小映射散点的大小。
    • 第二个 opts.VisualMapOpts 用于根据 y_data 元组中第三个元素的大小映射散点的颜色。
    • 第三个 opts.VisualMapOpts 用于根据 y_data 元组中第四个元素的大小映射散点的透明度,这里使用 range_opacity=[0.2, 1] 来指定透明度的范围,因为 range_opacityVisualMapOpts 中没有默认值,需要手动设置。

这个函数通过添加三个视觉组件,实现了从大小、颜色和透明度三个维度对散点图的扩展,使用户可以从多个维度观察数据的特征,更全面地展示数据信息。

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

相关文章:

  • Java学习教程,从入门到精通,JDBC删除数据库语法知识点(101)
  • Baklib如何推动企业知识管理的创新与转型探讨
  • 【算法】递归型枚举与回溯剪枝初识
  • 无人机 PX4 飞控 | PX4源码添加自定义参数方法并用QGC显示与调整
  • 《CPython Internals》阅读笔记:p356-p359
  • Linux--权限
  • java后端之登录认证
  • 【矩阵二分】力扣378. 有序矩阵中第 K 小的元素
  • C语言-构造数据类型
  • 鸿蒙next 自定义日历组件
  • 【express-generator】08-路由重定向
  • 搭建Spring Boot开发环境
  • Spatial Group-wise Enhance (SGE) module
  • 二叉搜索树中的搜索(力扣700)
  • 记录让cursor帮我给ruoyi-vue后台管理项目整合mybatis-plus
  • 【可实战】Linux 系统扫盲、 Shell扫盲(如何写一个简单的shell脚本)
  • sqlzoo答案4:SELECT within SELECT Tutorial
  • 【fly-iot飞凡物联】(20):2025年总体规划,把物联网整套技术方案和实现并落地,完成项目开发和课程录制。
  • Lucene常用的字段类型lucene检索打分原理
  • 适用于IntelliJ IDEA 2024.1.2部署Tomcat的完整方法,以及笔者踩的坑,避免高血压,保姆级教程
  • XSS靶场通关详解
  • Excel 技巧15 - 在Excel中抠图头像,换背景色(★★)
  • 备忘-humanplus相关的代码解析
  • 青少年编程与数学 02-008 Pyhon语言编程基础 01课题、语言概要
  • XSS (XSS)分类
  • [Linux]el8安全配置faillock:登录失败达阈值自动锁定账户配置
  • 最新-CentOS 7安装1 Panel Linux 服务器运维管理面板
  • selenium定位网页元素
  • 積分方程與簡單的泛函分析8.具連續對稱核的非齊次第II類弗雷德霍姆積分算子方程
  • 长理算法复习