当前位置: 首页 > 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 中没有默认值,需要手动设置。

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

相关文章:

Pyecharts之散点图的视觉扩展

在数据可视化中,散点图是一种强大的工具,可用于展示数据点在二维平面上的分布情况。通过添加各种视觉组件,我们可以让散点图变得更加丰富和具有表现力,更能反映数据的多维度特征。本文将详细解读如何为散点图添加不同的视觉组件&a…...

Java学习教程,从入门到精通,JDBC删除数据库语法知识点(101)

一、JDBC删除数据库语法知识点 1. 概述 JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 在JDBC中,删除数据库的操作主要是通过执行…...

Baklib如何推动企业知识管理的创新与转型探讨

内容概要 在当今快速发展的数字化时代,企业需要不断适应变化,以保持竞争优势。Baklib作为一款企业知识管理中台,扮演着推动数字化转型的重要角色。它通过提供一个集成的知识管理平台,帮助企业高效管理和共享内部及外部的知识资源…...

【算法】递归型枚举与回溯剪枝初识

递归型枚举与回溯剪枝初识 1.枚举子集2.组合型枚举3.枚举排列4.全排列问题 什么是搜索?搜索,是一种枚举,通过穷举所有的情况来找到最优解,或者统计合法解的个数。因此,搜索有时候也叫作暴搜。搜索一般分为深度优先搜索…...

无人机 PX4 飞控 | PX4源码添加自定义参数方法并用QGC显示与调整

无人机 PX4 飞控 | PX4源码添加自定义参数方法并用QGC显示与调整 0 前言 之前文章添加了一个自定义的模块,本篇文章在之前的自定义模块中,添加两个自定义参数 使用QGC显示出来,并通过QGC调整参数值,代码实现参数更新 新增的参…...

《CPython Internals》阅读笔记:p356-p359

《CPython Internals》学习第 19天,p356-p359 总结,总计 4 页。 一、技术总结 1.benchmark suite The benchmark suite is the tool to use when comparing the complete performance of Python. The Python Benchmark suite is a collection of Pyth…...

Linux--权限

Linux系统的权限管理是保障系统安全的重要机制,以下详细讲解权限相关概念及操作指令: 一、基础权限机制 1. 权限的三元组,读(r)、写(w)、执行(x) 每个文件或目录有三组…...

java后端之登录认证

基础登录功能:根据提供的用户名和密码判断是否存在于数据库 LoginController.java RestController Slf4j public class LoginController {Autowiredprivate UserService userService;PostMapping("/login")public Result login(RequestBody User user) {…...

【矩阵二分】力扣378. 有序矩阵中第 K 小的元素

给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。 你必须找到一个内存复杂度优于 O(n2) 的解决方案。 示例 1&#xff1…...

C语言-构造数据类型

1、构造数据类型 结构体、共用体、枚举。 2、结构体 1、结构体的定义 结构体是一个自定义的复合数据类型,它允许将不同类型的数据组合在一起。 struct 结构体名 {数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;数据类型4 成员变量4; } 2、结构体变…...

鸿蒙next 自定义日历组件

效果图预览 20250124-113957 使用说明 1.选择日期左右箭头,实现每月日历切换,示例中超出当前月份,禁止进入下一月,可在代码更改 2.日历中显示当前选择的日期,选中的日期颜色可自定义 3.日历中可展示历史记录作为数据…...

【express-generator】08-路由重定向

前言 通过前面两篇文章的讲解,我们已经介绍完第二阶段的前两点,本篇介绍第三点:路由重定向。 1. 路由重定向概述 路由重定向是指在服务器端将客户端的请求从一个 URL 重定向到另一个 URL 的过程。这通常通过 HTTP 状态码(如 30…...

搭建Spring Boot开发环境

JDK&#xff08;1.8及以上版本&#xff09; Apache Maven 3.6.0 修改settings.xml 设置本地仓库位置 <localRepository>D:/repository</localRepository> 设置远程仓库镜像 <mirror><id>alimaven</id><name>aliyun maven</name&…...

Spatial Group-wise Enhance (SGE) module

来源&#xff1a; [1905.09646] Spatial Group-wise Enhance: Improving Semantic Feature Learning in Convolutional Networks 相关工作&#xff1a; #GroupedFeatures #AttentionModels 创新点&#xff1a; 贡献&#xff1a; 提出了一种轻量级的SGE模块&#xff0c;能够…...

二叉搜索树中的搜索(力扣700)

首先介绍一下什么是二叉搜索树。 二叉搜索树是一个有序树&#xff1a; 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点的值&#xff1b;若它的右子树不空&#xff0c;则右子树上所有结点的值均大于它的根结点的值&#xff1b;它的左、右子树也分别为二叉…...

记录让cursor帮我给ruoyi-vue后台管理项目整合mybatis-plus

自己整合过程中会出现 work.web.exception.GlobalExceptionHandler :100 | 请求地址/admin/device/install/detail/1,发生未知异常. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.fire.mapper.DeviceInstallMapper.selectById at o…...

【可实战】Linux 系统扫盲、 Shell扫盲(如何写一个简单的shell脚本)

一、Linux系统扫盲 1.Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议 2.Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。 目前市面上较知名的发行版有&#xff1a;Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等…...

sqlzoo答案4:SELECT within SELECT Tutorial

sql练习&#xff1a;SELECT within SELECT Tutorial - SQLZoo world表&#xff1a; namecontinentareapopulationgdpAfghanistanAsia6522302550010020343000000AlbaniaEurope28748283174112960000000AlgeriaAfrica238174137100000188681000000AndorraEurope46878115371200000…...

【fly-iot飞凡物联】(20):2025年总体规划,把物联网整套技术方案和实现并落地,完成项目开发和课程录制。

前言 fly-iot飞凡物联专栏&#xff1a; https://blog.csdn.net/freewebsys/category_12219758.html 1&#xff0c;开源项目地址进行项目开发 https://gitee.com/fly-iot/fly-iot-platform 完成项目开发&#xff0c;接口开发。 把相关内容总结成文档&#xff0c;并录制课程。…...

Lucene常用的字段类型lucene检索打分原理

在 Apache Lucene 中&#xff0c;Field 类是文档中存储数据的基础。不同类型的 Field 用于存储不同类型的数据&#xff08;如文本、数字、二进制数据等&#xff09;。以下是一些常用的 Field 类型及其底层存储结构&#xff1a; TextField&#xff1a; 用途&#xff1a;用于存储…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...