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

Matplotlib炫酷气泡图:代码实战与参数解析【第55篇—python:Matplotlib炫酷气泡图】

文章目录

  • Matplotlib炫酷气泡图:代码实战与参数解析
    • 1. 基础气泡图
    • 2. 网格气泡图
    • 3. 自定义颜色气泡图
    • 4. 钟型气泡图
    • 5. 交互式气泡图
    • 6. 打卡气泡图
    • 7. 动态气泡图
    • 总结

Matplotlib炫酷气泡图:代码实战与参数解析

气泡图是一种展示数据分布、关联和趋势的强大工具。Matplotlib提供了灵活的绘图功能,允许我们创建各种类型的气泡图。在本文中,我们将深入探讨不同种类的炫酷气泡图,并为每种类型提供详细的参数说明和代码实战。

解决中文乱码:

plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题

1. 基础气泡图

首先,让我们从最基础的气泡图开始。基础气泡图是一种显示数据点的大小和颜色的图表,其中大小和颜色可以表示不同的变量。

import matplotlib.pyplot as plt
import numpy as np# 生成示例数据
x = np.random.rand(50)
y = np.random.rand(50)
size = np.random.rand(50) * 100  # 随机生成气泡大小
colors = np.random.rand(50)  # 随机生成颜色# 绘制基础气泡图
plt.scatter(x, y, s=size, c=colors, alpha=0.7, cmap='viridis')# 添加标题和标签
plt.title('基础气泡图')
plt.xlabel('X轴')
plt.ylabel('Y轴')# 显示颜色条
plt.colorbar()# 显示图表
plt.show()

在上面的代码中,s参数指定了气泡的大小,c参数指定了颜色,alpha参数调整了透明度,cmap参数定义了颜色映射。

image-20240204003507023

2. 网格气泡图

网格气泡图是在二维网格中显示气泡的一种方式,使得更容易看到数据之间的空间分布。

import matplotlib.pyplot as plt
import numpy as np# 生成示例数据
x = np.linspace(0, 10, 20)
y = np.linspace(0, 10, 20)
x, y = np.meshgrid(x, y)
size = np.random.rand(20, 20) * 100
colors = np.random.rand(20, 20)# 绘制网格气泡图
plt.scatter(x, y, s=size, c=colors, alpha=0.7, cmap='plasma')# 添加标题和标签
plt.title('网格气泡图')
plt.xlabel('X轴')
plt.ylabel('Y轴')# 显示颜色条
plt.colorbar()# 显示图表
plt.show()

在上面的代码中,我们使用meshgrid函数生成二维网格,然后绘制了网格气泡图。

image-20240204003611879

3. 自定义颜色气泡图

有时候,我们需要根据特定的数据值范围自定义气泡的颜色。下面的代码演示了如何使用自定义颜色映射。

import matplotlib.pyplot as plt
import numpy as np# 生成示例数据
x = np.random.rand(50)
y = np.random.rand(50)
size = np.random.rand(50) * 100
values = np.random.rand(50)  # 表示数据值# 自定义颜色映射
custom_cmap = plt.cm.get_cmap('coolwarm', 10)  # 10个颜色级别# 绘制自定义颜色气泡图
plt.scatter(x, y, s=size, c=values, cmap=custom_cmap, alpha=0.7)# 添加标题和标签
plt.title('自定义颜色气泡图')
plt.xlabel('X轴')
plt.ylabel('Y轴')# 显示颜色条
plt.colorbar()# 显示图表
plt.show()

在这个例子中,我们使用了coolwarm颜色映射,并指定了10个颜色级别。

4. 钟型气泡图

钟型气泡图是一种通过气泡的形状来表示数据分布的图表。在Matplotlib中,我们可以使用marker参数来定义不同形状的气泡。

import matplotlib.pyplot as plt
import numpy as np# 生成示例数据
x = np.random.rand(50)
y = np.random.rand(50)
size = np.random.rand(50) * 100
shapes = ['o', 's', '^', 'D']  # 不同形状的气泡# 绘制钟型气泡图
for i in range(4):plt.scatter(x[i*12:(i+1)*12], y[i*12:(i+1)*12], s=size[i*12:(i+1)*12], marker=shapes[i], alpha=0.7)# 添加标题和标签
plt.title('钟型气泡图')
plt.xlabel('X轴')
plt.ylabel('Y轴')# 显示图表
plt.show()

在上面的代码中,我们使用了四种不同形状的气泡来表示数据。

5. 交互式气泡图

Matplotlib允许我们创建交互式图表,使用户能够与图表进行互动。下面的代码演示了如何使用mplcursors库创建交互式气泡图。

import matplotlib.pyplot as plt
import numpy as np
import mplcursors  # 导入mplcursors库# 生成示例数据
x = np.random.rand(50)
y = np.random.rand(50)
size = np.random.rand(50) * 100
labels = [f'Data point {i+1}' for i in range(50)]  # 标签# 绘制交互式气泡图
scatter = plt.scatter(x, y, s=size, alpha=0.7, picker=True)
mplcursors.cursor(hover=True).connect("add", lambda sel: sel.annotation.set_text(labels[sel.target.index]))# 添加标题和标签
plt.title('交互式气泡图')
plt.xlabel('X轴')
plt.ylabel('Y轴')# 显示图表plt.show()

在这个例子中,我们使用了mplcursors库来创建交互式气泡图,用户可以将鼠标悬停在气泡上,显示相应的标签。

6. 打卡气泡图

打卡气泡图是一种时间序列数据可视化的方式,其中气泡的位置表示时间,大小表示数值。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd# 生成示例数据
dates = pd.date_range(start='2022-01-01', end='2022-01-31', freq='D')
values = np.random.rand(len(dates)) * 100# 绘制打卡气泡图
plt.scatter(dates, values, s=values, alpha=0.7)# 添加标题和标签
plt.title('打卡气泡图')
plt.xlabel('日期')
plt.ylabel('数值')# 显示图表
plt.show()

在上面的代码中,我们使用了Pandas库生成日期范围,然后绘制了打卡气泡图。

image-20240204003758952

7. 动态气泡图

最后,让我们创建一个动态气泡图,展示气泡随时间变化的过程。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.animation import FuncAnimation# 生成示例数据
x = np.random.rand(50)
y = np.random.rand(50)
size = np.random.rand(50) * 100
colors = np.random.rand(50)# 初始化图表
fig, ax = plt.subplots()
scatter = ax.scatter(x, y, s=size, c=colors, alpha=0.7, cmap='viridis')# 更新函数
def update(frame):scatter.set_offsets(np.random.rand(50, 2))scatter.set_sizes(np.random.rand(50) * 100)scatter.set_array(np.random.rand(50))return scatter,# 创建动画
animation = FuncAnimation(fig, update, frames=100, interval=200, blit=True)# 显示动画
plt.show()

在上面的代码中,我们使用FuncAnimation创建了一个动态气泡图的动画,气泡的位置、大小和颜色在每一帧都会随机更新。

通过这篇文章,我们深入了解了Matplotlib绘制不同种类炫酷气泡图的参数和代码实例。希望这些示例能够帮助你更好地利用Matplotlib进行数据可视化,创造出独特而具有吸引力的图表。

总结

本文深入介绍了Matplotlib库中绘制不同种类炫酷气泡图的方法,涵盖了基础气泡图、网格气泡图、自定义颜色气泡图、钟型气泡图、交互式气泡图、打卡气泡图和动态气泡图。每种图表都有详细的参数说明和相应的代码实战。

在实际应用中,根据数据特点和目标,选择合适的气泡图类型可以更好地传达信息。例如,基础气泡图适用于展示数据点的分布,打卡气泡图用于展示时间序列数据的变化,交互式气泡图则提供了用户友好的交互方式。

Matplotlib提供了丰富的功能和灵活性,通过学习不同类型气泡图的绘制方式,你可以更好地应对不同数据可视化的需求。同时,通过调整颜色、大小、形状等参数,可以使图表更具吸引力和表现力。

在实践中,根据具体需求不断尝试和调整参数,结合其他可视化工具和库,将数据呈现得更加清晰、生动。希望本文能够帮助读者更深入地理解Matplotlib库,并在数据分析和可视化工作中发挥更大的作用。

相关文章:

Matplotlib炫酷气泡图:代码实战与参数解析【第55篇—python:Matplotlib炫酷气泡图】

文章目录 Matplotlib炫酷气泡图:代码实战与参数解析1. 基础气泡图2. 网格气泡图3. 自定义颜色气泡图4. 钟型气泡图5. 交互式气泡图6. 打卡气泡图7. 动态气泡图总结 Matplotlib炫酷气泡图:代码实战与参数解析 气泡图是一种展示数据分布、关联和趋势的强大…...

Android学习之路(29) Gradle初探

前言: 大家回想一下自己第一次接触Gradle是什么时候? 相信大家也都是和我一样,在我们打开第一个AS项目的时候, 发现有很多带gradle字样的文件:setting.gradle, build.gradle,gradle.warpper,以及在gradle文件中各种配置&#xff…...

python-自动化篇-运维-语音识别

文章目录 理论文本转换为语音使用 pyttsx使用 SAPI使用 SpeechLib 语音转换为文本 代码和效果01使用pyttsx实现文本_语音02使用SAPI实现文本_语音03使用SpeechLib实现文本_语音04使用PocketSphinx实现语音转换文本 理论 语音识别技术,也被称为自动语音识别&#xf…...

ElasticSearch-ElasticSearch实战-仿京东商城搜索(高亮)

注:此为笔者学习狂神说ElasticSearch的实战笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:狂神说!!! 七、ElasticSearch实战 仿京东商城搜索(高亮) 1、工程创建…...

解释 Python 中的描述符(Descriptor)是什么?如何在 Python 中实现一个简单的 ORM(对象关系映射)?

解释 Python 中的描述符(Descriptor)是什么?举例说明其用法。 在 Python 中,描述符(Descriptor)是一种对象属性的扩展机制,它允许你在访问或修改属性时执行自定义的操作。描述符是实现了特定协…...

IP数据云识别真实IP与虚假流量案例

随着互联网的普及,企业在数字领域面临着越来越复杂的网络威胁。为了保护网站免受虚假流量和恶意攻击的影响,许多企业正在采用IP数据云。本文将结合一个真实案例,深入探讨IP数据云如何成功准确地识别真实用户IP和虚假流量IP,提高网…...

signalR+websocket:实现消息实时通讯——技能提升

signalR 解决步骤1:npm install microsoft/signalr6.0.6 安装指定版本的microsoft/signalr,我这边安装的版本是6.0.6 解决步骤2:引入import * as signalR from microsoft/signalr; import * as signalR from microsoft/signalr; 下面第三…...

机器学习入门-----sklearn

机器学习基础了解 概念 机器学习是人工智能的一个实现途径 深度学习是机器学习的一个方法发展而来 定义:从数据中自动分析获得模型,并利用模型对特征数据【数据集:特征值+目标值构成】进行预测 算法 数据集的目标值是类别的话叫做分类问题;目标值是连续的数值的话叫做回…...

双非本科准备秋招(15.3)—— 力扣二叉树

今天学了二叉树结点表示法,建树代码如下。 public class TreeNode {public int val;public TreeNode left;public TreeNode right;public TreeNode(int val) {this.val val;}public TreeNode(int val, TreeNode left, TreeNode right) {this.val val;this.left …...

20240203在WIN10下使用GTX1080配置stable-diffusion-webui.git不支持float16精度出错的处理

20240203在WIN10下使用GTX1080配置stable-diffusion-webui.git不支持float16精度出错的处理 2024/2/3 21:23 缘起:最近学习stable-diffusion-webui.git,在Ubuntu20.04.6下配置SD成功。 不搞精简版本:Miniconda了。直接上Anacoda! …...

京东微前端框架MicroApp简介

一、MicroApp 1.1 MicroApp简介 MicroApp是由京东前端团队推出的一款微前端框架,它从组件化的思维,基于类WebComponent进行微前端的渲染,旨在降低上手难度、提升工作效率。MicroApp无关技术栈,也不和业务绑定,可以用于任何前端框架。 官网链接:https://micro-zoe.gith…...

SpringBoot 使用定时任务(SpringTask)

Spring3.0以后自带的task&#xff0c;可以将它看成一个轻量级的Quartz&#xff0c;而且使用起来比Quartz简单许多。 使用步骤&#xff1a; 1.导入坐标 在spring-boot-starter-web坐标中&#xff0c;就包含了SpringTask&#xff0c;所以一般的Web项目都包含了。 <depende…...

国标GB/T 28181详解:设备视音频文件检索消息流程

目 录 一、设备视音频文件检索 二、设备视音频文件检索的基本要求 三、命令流程 1、流程图 2、流程描述 四、协议接口 五、产品说明 六、设备视音频文件检索的作用 七、参考 在国标GBT28181中&#xff0c;定义了设备视音频文件检索消息的流程&#xff0c;主…...

openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证

1. 生成根证书 1.1 生成CA证书私钥 openssl genrsa -aes256 -out ca.key 2048 1.2 取消密钥的密码保护 openssl rsa -in ca.key -out ca.key 1.3 生成根证书签发申请文件(csr文件) openssl req -new -sha256 -key ca.key -out ca.csr -subj "/CCN/STFJ/LXM/ONONE/OU…...

NIO Selector简介

1.Selector和Channel关系 Selector一般称为选择器&#xff0c;也叫多路复用器&#xff0c;NIO的核心组件&#xff0c;用于检查一个或多个Channel的状态是否处于可读、可写的状态。 2.可选择通道 &#xff08;1&#xff09;不是所有的channel都能被selector复用&#xff0c;…...

2023-12蓝桥杯STEMA考试 C++ 中高级试卷解析

蓝桥杯STEMA考试 C++ 中高级试卷(12月) 一、选择题 第一题 定义字符串 string a = "Hello C++",下列选项可以获取到字符 C 的是(B)。 A、a[7] B、a[6] C、a[5] D、a[4] 第二题 下列选项中数值与其它项不同的是( C)。 A、 B、 C、 D、 第三题 定义变量 int i =…...

设计模式——2_1 命令(Command)

文章目录 定义图纸一个例子&#xff1a;空调和他的遥控器只有控制面板的空调遥控器可以撤销的操作 碎碎念命令和Runnable命令和事务 定义 把请求封装成一个对象&#xff0c;从而使你可以用不同的请求对客户进行参数化&#xff0c;对请求排队或记录请求日志&#xff0c;以及支持…...

HP数组面试题

PHP数组面试题 问题&#xff1a; 如何创建一个空数组和一个带有初始值的数组&#xff1f; 答案&#xff1a; 创建空数组&#xff1a;可以使用array()函数或空数组语法[]来创建一个空数组&#xff0c;例如$arr array();或$arr [];。创建带有初始值的数组&#xff1a;可以在创建…...

机器学习5-线性回归之损失函数

在线性回归中&#xff0c;我们通常使用最小二乘法&#xff08;Ordinary Least Squares, OLS&#xff09;来求解损失函数。线性回归的目标是找到一条直线&#xff0c;使得预测值与实际值的平方差最小化。 假设有数据集 其中 是输入特征&#xff0c; 是对应的输出。 线性回归的…...

vulhub中Adminer ElasticSearch 和 ClickHouse 错误页面SSRF漏洞复现(CVE-2021-21311)

Adminer是一个PHP编写的开源数据库管理工具&#xff0c;支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。 在其4.0.0到4.7.9版本之间&#xff0c;连接 ElasticSearch 和 ClickHouse 数据库时存在一处服务端请求伪造漏洞&#xff08…...

2023年数字图像处理实战:从噪声滤除到图像恢复的八大核心考题解析

1. 椒噪声滤除&#xff1a;自适应中值滤波实战 遇到图像布满黑白噪点&#xff08;椒盐噪声&#xff09;时&#xff0c;传统中值滤波直接暴力替换像素可能误伤细节。去年帮学弟调试车牌识别系统时就遇到过这种情况——滤波后车牌数字"7"直接变成了"1"。后来…...

C++常量表达式constexpr在编译期计算与模板元编程中的结合

C常量表达式constexpr与模板元编程的结合为现代C带来了前所未有的编译期计算能力&#xff0c;这种技术组合不仅提升了程序性能&#xff0c;还增强了代码的表达能力。在C11引入constexpr后&#xff0c;开发者能够在编译期完成复杂的计算&#xff0c;而模板元编程则提供了类型操作…...

ESP32开发板选型指南:从Arduino到NodeMCU,哪款更适合你的项目?

ESP32开发板选型指南&#xff1a;从Arduino到NodeMCU&#xff0c;哪款更适合你的项目&#xff1f; 在物联网和嵌入式开发领域&#xff0c;ESP32系列开发板凭借其出色的性价比和丰富的功能&#xff0c;已经成为众多开发者的首选。面对市场上琳琅满目的ESP32开发板型号&#xff0…...

Navicat连接PostgreSQL常见问题排查指南

1. Navicat连接PostgreSQL的典型问题场景 第一次用Navicat连PostgreSQL的朋友&#xff0c;八成会遇到这个报错画面——输入完账号密码点连接&#xff0c;结果弹个红叉提示"无法连接到服务器"。这种情况我见得太多了&#xff0c;特别是连接远程服务器或者虚拟机里的数…...

Tao-8k在智能硬件原型开发中的应用:从固件开发到语音交互

Tao-8k在智能硬件原型开发中的应用&#xff1a;从固件开发到语音交互 最近在捣鼓一个智能音箱的原型&#xff0c;从画电路板到写代码&#xff0c;折腾了好一阵子。整个过程里&#xff0c;最让我头疼的不是硬件本身&#xff0c;而是怎么让这个“铁疙瘩”听懂人话&#xff0c;还…...

3步搞定智能字幕下载:GetSubtitles让观影体验再升级

3步搞定智能字幕下载&#xff1a;GetSubtitles让观影体验再升级 【免费下载链接】GetSubtitles 一步下载匹配字幕 项目地址: https://gitcode.com/gh_mirrors/ge/GetSubtitles 您是否曾因找不到匹配的字幕而放弃观看一部精彩的外语影片&#xff1f;GetSubtitles作为一款…...

收藏!AI时代普通程序员如何转型?3-6个月快速升级指南,小白也能看懂!

AI正改变程序员行业&#xff0c;常规编码任务或被AI替代&#xff0c;但高级岗位和复合型人才需求增加。普通程序员需利用AI提升逻辑思维、问题解决和系统架构能力&#xff0c;转向AI/ML工程、网络安全、科技与工种复合或跨职能岗位。通过每天用AI学习、接副业单等实战方法&…...

用Python和Keras从零搭建疲劳驾驶检测器:MTCNN人脸对齐与CNN分类实战

用Python和Keras从零搭建疲劳驾驶检测器&#xff1a;MTCNN人脸对齐与CNN分类实战 在智能交通领域&#xff0c;驾驶员状态监测正成为保障道路安全的关键技术。本文将带您从零构建一个基于视觉分析的疲劳检测系统&#xff0c;通过MTCNN实现毫秒级人脸对齐&#xff0c;结合自定义C…...

突破Cursor AI限制:免费畅享Pro功能的完整指南

突破Cursor AI限制&#xff1a;免费畅享Pro功能的完整指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial requ…...

编写程序做书架分层标识牌,自动适配文字长度,输出:家庭/书店整理神器。

项目方案&#xff1a;基于Python的书架分层标识牌激光切割生成系统一、 实际应用场景描述想象一下这样的场景&#xff1a;你拥有一个摆放着数百本书的家庭书房&#xff0c;或者你经营着一家独立书店。为了快速找到书籍&#xff0c;你需要制作贴在书架隔板前沿或立在书架顶端的分…...