Matplotlib plt.scatter:从入门到精通,只需一篇文章!

Matplotlib plt.scatter:从入门到精通,只需一篇文章!🚀

在这里插入图片描述

利用Matplotlib进行数据可视化示例


🌵文章目录🌵

  • 一、plt.scatter入门:轻松迈出第一步 👣
  • 二、进阶探索:plt.scatter的高级用法和技巧🔍
  • 三、参考文档📚
  • 四、结尾🌳

一、plt.scatter入门:轻松迈出第一步 👣

🎈 欢迎来到Matplotlib的plt.scatter世界!这是一个强大而灵活的工具,用于创建散点图,帮助你直观地理解和分析数据。在这里,我们将从基础开始,逐步掌握如何使用plt.scatter来创建散点图。

📌 首先,确保你已经安装了Matplotlib库。如果没有安装,可以使用以下命令进行安装:

pip install matplotlib

📚 接下来,让我们导入必要的库并创建一个简单的散点图。

import matplotlib.pyplot as plt
import numpy as np

# 创建一些随机数据
x = np.random.rand(50)
y = np.random.rand(50)


# 设置全局字体为支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei']

# 使用plt.scatter创建散点图
plt.scatter(x, y)

# 添加标题和坐标轴标签
plt.title('简单的散点图')
plt.xlabel('X轴')
plt.ylabel('Y轴')

# 显示图形
plt.show()

🎉 效果展示

Fig.1 使用plt.scatter来创建散点图

运行上述代码,你将看到如图1所示的散点图,其中包含50个随机分布的点。🎉

二、进阶探索:plt.scatter的高级用法和技巧🔍

🌈 散点图是一种非常直观的数据可视化方式,可以展示两个变量之间的关系。通过调整散点图的颜色、大小、形状等属性,我们可以进一步强调数据的某些特征,使故事更加生动。

💡 下面是一个自定义散点颜色和大小的散点图示例:

import matplotlib.pyplot as plt
import numpy as np


# 设置全局字体为支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决保存图像是负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False


# 创建一个2x3的子图网格
fig, axs = plt.subplots(2, 3, figsize=(15, 10))  # figsize设置图形大小

# 示例1: 单一颜色和固定大小的散点图
x1 = np.random.rand(50)
y1 = np.random.rand(50)
axs[0, 0].scatter(x1, y1, color='red', s=50)
axs[0, 0].set_title('单一颜色和固定大小的散点图')
axs[0, 0].set_xlabel('X轴')
axs[0, 0].set_ylabel('Y轴')

# 示例2: 不同颜色和固定大小的散点图
x2 = np.random.rand(50)
y2 = np.random.rand(50)
colors2 = np.random.rand(50)
axs[0, 1].scatter(x2, y2, c=colors2, s=50)
axs[0, 1].set_title('不同颜色和固定大小的散点图')
axs[0, 1].set_xlabel('X轴')
axs[0, 1].set_ylabel('Y轴')

# 示例3: 单一颜色和不同大小的散点图
x3 = np.random.rand(50)
y3 = np.random.rand(50)
sizes3 = np.random.randint(10, 100, 50)
axs[0, 2].scatter(x3, y3, color='blue', s=sizes3)
axs[0, 2].set_title('单一颜色和不同大小的散点图')
axs[0, 2].set_xlabel('X轴')
axs[0, 2].set_ylabel('Y轴')

# 示例4: 不同颜色和不同大小的散点图
x4 = np.random.rand(50)
y4 = np.random.rand(50)
colors4 = np.random.rand(50)
sizes4 = np.random.randint(10, 100, 50)
axs[1, 0].scatter(x4, y4, c=colors4, s=sizes4)
axs[1, 0].set_title('不同颜色和不同大小的散点图')
axs[1, 0].set_xlabel('X轴')
axs[1, 0].set_ylabel('Y轴')

# 示例5: 使用颜色映射的散点图
x5 = np.random.rand(50)
y5 = np.random.rand(50)
z5 = np.random.rand(50)
axs[1, 1].scatter(x5, y5, c=z5, cmap='viridis')
axs[1, 1].set_title('使用颜色映射的散点图')
axs[1, 1].set_xlabel('X轴')
axs[1, 1].set_ylabel('Y轴')


# 示例6: 使用分组和自定义样式的散点图
x6 = np.random.rand(100)
y6 = np.random.rand(100)
groups6 = np.random.choice(['A', 'B'], size=100)
colors6 = {'A': 'red', 'B': 'blue'}
sizes6 = {'A': 50, 'B': 100}

for group, color, size in zip(groups6, colors6.values(), sizes6.values()):
    axs[1, 2].scatter(x6[groups6 == group], y6[groups6 == group], color=color, label=group, s=size)
axs[1, 2].set_title('分组和自定义样式的散点图')
axs[1, 2].set_xlabel('X轴')
axs[1, 2].set_ylabel('Y轴')
axs[1, 2].legend()  # 添加图例

# 调整子图之间的间距
plt.subplots_adjust(wspace=0.4, hspace=0.4)

# 显示图形
plt.show()

🎉 效果展示

Fig.2 使用plt.scatter来自定义散点颜色和大小

  • 以上代码使用Matplotlib库创建了一个包含六个子图的散点图矩阵。📈📊
  • 每个子图展示了不同类型的散点图,包括:
    • 单一颜色和固定大小的散点图;
    • 不同颜色和固定大小的散点图;
    • 单一颜色和不同大小的散点图;
    • 不同颜色和不同大小的散点图;
    • 使用颜色映射的散点图;
    • 使用分组和自定义样式的散点图;

  这些散点图基于随机生成的数据绘制,并通过调整颜色、大小和分组等参数来展示scatter函数的不同功能和用法。最后,代码调整了子图之间的间距,并显示了整个图像。💡🖼️

三、参考文档📚

  1. Matplotlib官网
  2. Matplotlib初探:认识数据可视化与Matplotlib
  3. 数据分析利器对决:Matplotlib中的MATLAB风格与面向对象风格,你选谁?

四、结尾🌳

  亲爱的读者,感谢您每一次停留和阅读,这是对我们最大的支持和鼓励!🙏在茫茫网海中,您的关注让我们深感荣幸。您的独到见解和建议,如明灯照亮我们前行的道路。🌟若在阅读中有所收获,一个赞或收藏,对我们意义重大。

  我们承诺,会不断自我挑战,为您呈现更精彩的内容。📚有任何疑问或建议,欢迎在评论区畅所欲言,我们时刻倾听。💬让我们携手在知识的海洋中航行,共同成长,共创辉煌!🌱🌳感谢您的厚爱与支持,期待与您共同书写精彩篇章!

  您的点赞👍、收藏🌟、评论💬和关注💖,是我们前行的最大动力!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大文件上传如何做断点续传?

文章目录 一、是什么分片上传断点续传 二、实现思路三、使用场景小结 参考文献 一、是什么 不管怎样简单的需求,在量级达到一定层次时,都会变得异常复杂 文件上传简单,文件变大就复杂 上传大文件时,以下几个变量会影响我们的用…

用HTML和CSS打造跨年烟花秀视觉盛宴

目录 一、程序代码 二、代码原理 三、运行效果 一、程序代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>跨年烟花秀</title><meta name"viewport" content"widthdevi…

poetry,一个好用的Python项目依赖管理库

🏷️个人主页:鼠鼠我捏,要死了捏的主页 🏷️付费专栏:Python专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前言 在 Python 开发领域,项目依赖管理是一个至关重要的问题。Python Poetry 是一个现代化的项目依赖管理工具,旨在简化 Python 项目的依赖管理和打包…

【JavaSE】数据类型和运算符

目录​​​​​​​ 前言 数据类型 1. 数据类型的分类 2. 基本数据类型 变量 1. 概叙 2. 整型变量 3. 字节型 & 短整型 & 长整型变量 4. 单 / 双精度浮点型变量 5. 字符型变量 6. 布尔型变量 类型转换 1. 自动类型转换(隐式) 2. 强制类型转换(显式) 补…

身份治理存在权限问题

身份治理正迅速成为 CISO 的首要考虑因素。二十年前&#xff0c;当萨班斯-奥克斯利法案(SoX) 和其他监管指令在互联网泡沫破灭后诞生时&#xff0c;身份治理要求就出现了。合规性控制&#xff0c;例如用户访问审查和有效管理员工访问生命周期的需要&#xff0c;是当时身份治理的…

OpenCV中的边缘检测技术及实现

介绍: 边缘检测是计算机视觉中非常重要的技术之一。它用于有效地识别图像中的边缘和轮廓&#xff0c;对于图像分析和目标检测任务至关重要。OpenCV提供了多种边缘检测技术的实现&#xff0c;本博客将介绍其中的两种常用方法&#xff1a;Canny边缘检测和Sobel边缘检测。 理论介…

JavaSE-02笔记【封装~this和static】

文章目录 1.封装&#xff08;掌握&#xff09;1.1 封装的理解1.2 不封装存在的问题1.3 怎么封装1.4 难点解惑1.5 练习 2. this 和 static2.1 this&#xff08;掌握&#xff09;2.1.1 this是什么2.1.2 this 在实例方法中使用2.1.3 this访问实例变量2.1.4 this扩展①2.1.5 this扩…

林浩然与杨凌芸的Java时光魔法:格式化历险记

林浩然与杨凌芸的Java时光魔法&#xff1a;格式化历险记 The Java Time Odyssey of Lin Haoran and Yang Lingyun: A Formatting Adventure 在编程世界的一隅&#xff0c;有一个名叫林浩然的程序员。他是个Java大侠&#xff0c;对代码世界的法则了如指掌&#xff0c;尤其擅长驾…

Vue2学习第三天

Vue2 学习第三天 1. 计算属性 computed 计算属性实现 定义&#xff1a;要用的属性不存在&#xff0c;要通过已有属性计算得来。 原理&#xff1a;底层借助了Objcet.defineproperty方法提供的getter和setter。 get函数什么时候执行&#xff1f; 初次读取时会执行一次。当依赖…

中科院一区论文复现,改进蜣螂算法,Fuch映射+反向学习+自适应步长+随机差分变异,MATLAB代码...

本期文章复现一篇发表于2024年来自中科院一区TOP顶刊《Energy》的改进蜣螂算法。 论文引用如下&#xff1a; Li Y, Sun K, Yao Q, et al. A dual-optimization wind speed forecasting model based on deep learning and improved dung beetle optimization algorithm[J]. Ener…

人工智能学习与实训笔记(十四):Langchain Agent

0、概要 Agent是干什么的&#xff1f; Agent的核心思想是使用语言模型&#xff08;LLM&#xff09;作为推理的大脑&#xff0c;以制定解决问题的计划、借助工具实施动作。在agents中几个关键组件如下&#xff1a; Agent&#xff1a;制定计划和思考下一步需要采取的行动。Tools…

H12-821_44

44.如图所示的网络,R1设备配置路由渗透,那么R1设备把Level-2的LSP发送给R3,使R3可以获知全网路由。 A.正确 B.错误 答案&#xff1a;B 注释&#xff1a; 感觉题目描述有两个问题&#xff1a; 1. R3是Level-1-2路由器&#xff0c;本来就可以学习到Level-2的路由。题目中的R3应该…

会声会影支持哪些视频格式 会声会影2024软件下载 会声会影序列号在哪里购买

时常有朋友遇到这样的烦恼&#xff0c;就是从网络上下载下载来的视频&#xff0c;不能够导入到会声会影里面。这到底是怎么回事&#xff0c;到底支持哪些视频格式呢&#xff1f;下面小编将来给大家介绍一下。 还没有下载会声会影2024的朋友可以通过这个链接下载&#xff1a;ht…

mysql 执行update操作 记录未修改

问题 mysql 执行update操作 记录未修改 详细问题 笔者进行SpringBootMybatis项目开发&#xff0c;确认执行update操作 控制台内容如下 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession3cbe9459] was not registered for sync…

【c++】list详细讲解

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟悉list库 > 毒鸡汤&#xff1a;你的脸上云淡…

OpenAI Sora是世界模型?

初见Sora&#xff0c;我被OpenAI的野心震撼了。 他们不仅想教会AI理解视频&#xff0c;还要让它模拟整个物理世界&#xff01;这简直是通用人工智能的一大飞跃。 但当我深入了解后&#xff0c;我发现Sora比我想象的更复杂、更强大。 Sora不是简单的创意工具&#xff0c;而是…

【BBuf的CUDA笔记】十四,OpenAI Triton入门笔记二

0x0. 前言 接着【BBuf的CUDA笔记】十三&#xff0c;OpenAI Triton 入门笔记一 继续探索和学习OpenAI Triton。这篇文章来探索使用Triton写LayerNorm/RMSNorm kernel的细节。 之前在 【BBuf的CUDA笔记】十二&#xff0c;LayerNorm/RMSNorm的重计算实现 这篇文章我啃过Apex的La…

Caffeine本地缓存

Caffeine本地缓存 Caffine简介 简单说&#xff0c;Caffine 是一款高性能的本地缓存组件&#xff0c;由下面三幅图可见&#xff1a;不管在并发读、并发写还是并发读写的场景下&#xff0c;Caffeine的性能都大幅领先于其他本地开源缓存组件 常见的缓存淘汰算法 FIFO 它…

电源管理芯片是指在电子设备系统中,负责对电能的变换、分配、检测等进行管理的芯片

萨科微半导体宋仕强介绍说&#xff0c;电源管理芯片是指在电子设备系统中&#xff0c;负责对电能的变换、分配、检测等进行管理的芯片&#xff0c;其性能和可靠性直接影响电子设备的工作效率和使用寿命&#xff0c;是电子设备中的关键器件。萨科微slkor&#xff08;www.slkormi…

wps使用方法(包括:插入倒三角符号,字母上面加横线,将word中的所有英文设置为time new roman)

倒三角符号 字母上面加横线 将word中的所有英文设置为time new roman ctrla选中全文