Matplotlib绘制炫酷散点图:从二维到三维,再到散点图矩阵的完整指南与实战【第58篇—python:Matplotlib绘制炫酷散点图】

文章目录

  • Matplotlib绘制炫酷散点图:二维、三维和散点图矩阵的参数说明与实战
    • 引言
    • 二维散点图
    • 三维散点图
    • 散点图矩阵
    • 二维散点图进阶:辅助线、注释和子图
    • 三维散点图进阶:动画效果和交互性
    • 散点图矩阵进阶:调整样式和添加密度图
    • 总结与展望
    • 附录:Matplotlib常用散点图参数说明
      • 二维散点图参数说明
      • 三维散点图参数说明
      • 散点图矩阵参数说明
      • 通用参数说明

Matplotlib绘制炫酷散点图:二维、三维和散点图矩阵的参数说明与实战

引言

Matplotlib是Python中常用的数据可视化库之一,广泛应用于科学计算、数据分析和机器学习等领域。在本文中,我们将探讨Matplotlib如何绘制炫酷的散点图,包括二维散点图、三维散点图以及散点图矩阵。我们将深入了解每种散点图的参数说明,并通过实战代码演示它们的应用。

二维散点图

Matplotlib中的scatter函数可用于绘制二维散点图。以下是一些常用参数说明:

  • xy:指定散点图的x和y坐标。
  • s:指定散点的大小。
  • c:指定散点的颜色。
  • marker:指定散点的标记样式。
import matplotlib.pyplot as plt
import numpy as np# 生成随机数据
np.random.seed(42)
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 1000 * np.random.rand(50)# 绘制二维散点图
plt.scatter(x, y, s=sizes, c=colors, marker='o', alpha=0.7, cmap='viridis')
plt.title('二维散点图')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.colorbar(label='颜色深浅')
plt.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三维散点图

如果想要绘制三维散点图,可以使用mplot3d模块。以下是一些关键参数:

  • xsyszs:指定散点的x、y和z坐标。
  • c:指定散点的颜色。
  • marker:指定散点的标记样式。
from mpl_toolkits import mplot3d# 生成随机数据
np.random.seed(42)
xs = np.random.rand(50)
ys = np.random.rand(50)
zs = np.random.rand(50)
colors = np.random.rand(50)
sizes = 100 * np.random.rand(50)# 绘制三维散点图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(xs, ys, zs, s=sizes, c=colors, marker='o', alpha=0.7, cmap='viridis')
ax.set_title('三维散点图')
ax.set_xlabel('X轴')
ax.set_ylabel('Y轴')
ax.set_zlabel('Z轴')
plt.show()

image-20240204134507304

散点图矩阵

散点图矩阵是一种同时显示多个变量之间关系的图表,可通过scatter_matrix函数实现。以下是一些关键参数:

  • diagonal:指定对角线上绘制的图表类型。
  • marker:指定散点的标记样式。
  • c:指定散点的颜色。
from pandas.plotting import scatter_matrix
import pandas as pd# 生成随机数据
np.random.seed(42)
data = pd.DataFrame(np.random.rand(100, 4), columns=['A', 'B', 'C', 'D'])# 绘制散点图矩阵
scatter_matrix(data, alpha=0.8, figsize=(10, 10), marker='o', diagonal='kde', c='r')
plt.suptitle('散点图矩阵')
plt.show()

二维散点图进阶:辅助线、注释和子图

在绘制二维散点图时,我们可以进一步优化图表,增加辅助线、注释和子图,以提高可读性和信息传达。

import matplotlib.pyplot as plt
import numpy as np# 生成随机数据
np.random.seed(42)
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 1000 * np.random.rand(50)# 绘制二维散点图
fig, ax = plt.subplots()
sc = ax.scatter(x, y, s=sizes, c=colors, marker='o', alpha=0.7, cmap='viridis')# 添加辅助线和注释
ax.axhline(0.5, color='gray', linestyle='--', linewidth=1)
ax.axvline(0.5, color='gray', linestyle='--', linewidth=1)
ax.annotate('中心点', xy=(0.5, 0.5), xytext=(0.6, 0.7),arrowprops=dict(facecolor='black', shrink=0.05))# 设置标题和坐标轴标签
ax.set_title('二维散点图(进阶)')
ax.set_xlabel('X轴')
ax.set_ylabel('Y轴')# 添加颜色条
cbar = plt.colorbar(sc, label='颜色深浅')plt.show()

image-20240204134618271

三维散点图进阶:动画效果和交互性

对于三维散点图,我们可以通过添加动画效果和交互性来增强用户体验。

from mpl_toolkits import mplot3d
from matplotlib.animation import FuncAnimation# 生成随机数据
np.random.seed(42)
xs = np.random.rand(50)
ys = np.random.rand(50)
zs = np.random.rand(50)
colors = np.random.rand(50)
sizes = 100 * np.random.rand(50)# 绘制动态的三维散点图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')def update(frame):ax.cla()ax.scatter(xs, ys, zs, s=sizes, c=colors, marker='o', alpha=0.7, cmap='viridis')ax.set_title(f'三维散点图 - 帧 {frame}')ax.set_xlabel('X轴')ax.set_ylabel('Y轴')ax.set_zlabel('Z轴')ani = FuncAnimation(fig, update, frames=range(50), interval=200)
plt.show()

散点图矩阵进阶:调整样式和添加密度图

在散点图矩阵中,我们可以调整样式,并添加密度图以更全面地呈现变量之间的关系。

from pandas.plotting import scatter_matrix
import pandas as pd# 生成随机数据
np.random.seed(42)
data = pd.DataFrame(np.random.rand(100, 4), columns=['A', 'B', 'C', 'D'])# 绘制散点图矩阵(进阶)
scatter_matrix(data, alpha=0.8, figsize=(10, 10), marker='o', diagonal='kde', c='r', grid=True)
plt.suptitle('散点图矩阵(进阶)')
plt.show()

通过以上实例,我们了解了如何进一步优化二维散点图、三维散点图和散点图矩阵,使其更具信息密度和视觉吸引力。这些技巧在实际应用中能够提高图表的可解释性和交互性。希望这篇文章对你在使用Matplotlib进行数据可视化时有所帮助。

总结与展望

在本文中,我们深入探讨了Matplotlib库中绘制不同种类炫酷散点图的参数说明与实战应用。从基础的二维散点图到三维散点图,再到散点图矩阵,我们逐步学习了如何利用Matplotlib强大的功能创建多样化的散点图。

在二维散点图中,我们学习了如何设置散点的大小、颜色、标记样式,以及如何添加辅助线和注释。这些技巧可以提高图表的可读性和信息传达效果。

在三维散点图中,我们引入了mplot3d模块,学习了如何绘制动态的三维散点图。动画效果和交互性的加入能够使数据更生动,更直观地展示变化趋势。

最后,我们探讨了散点图矩阵的应用,通过调整样式和添加密度图,使图表更具吸引力和信息密度。

未来,Matplotlib仍然是数据可视化领域的热门工具之一。随着Python生态系统的发展,我们可以期待更多关于数据可视化的新工具和技术的涌现。无论是在科学研究、数据分析还是机器学习领域,熟练使用数据可视化工具将成为数据科学家和工程师的重要技能之一。

希望本文的内容对你在使用Matplotlib进行数据可视化时提供了帮助,并激发了你进一步深入学习和实践的兴趣。祝愿你在数据可视化的旅程中取得更多的成就!

附录:Matplotlib常用散点图参数说明

在本附录中,我们将总结Matplotlib中常用于绘制散点图的重要参数说明,以供读者参考。

二维散点图参数说明

  • xy:指定散点图的x和y坐标。
  • s:指定散点的大小。
  • c:指定散点的颜色。
  • marker:指定散点的标记样式。
  • alpha:指定散点的透明度。
  • cmap:指定颜色映射。

三维散点图参数说明

  • xsyszs:指定散点的x、y和z坐标。
  • s:指定散点的大小。
  • c:指定散点的颜色。
  • marker:指定散点的标记样式。
  • alpha:指定散点的透明度。
  • cmap:指定颜色映射。

散点图矩阵参数说明

  • alpha:指定散点的透明度。
  • marker:指定散点的标记样式。
  • diagonal:指定对角线上绘制的图表类型。
  • c:指定散点的颜色。
  • grid:是否显示网格。

通用参数说明

  • title:图表的标题。
  • xlabelylabel:x和y轴的标签。
  • colorbar:添加颜色条。

以上参数说明仅为常用参数,Matplotlib提供了更多可供调整的参数,读者可根据具体需求查阅官方文档。

希望这份附录能够帮助读者更好地理解Matplotlib中散点图绘制函数的使用方法,进一步发挥数据可视化的强大功能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stable_diffusion提示词编写笔记(1)

stable_diffusion提示词编写笔记(1) start 总结一下AI绘画学到的知识。 一.提示词分两种: 1.正向提示词; 2.反向提示词; 一个对应你希望图形包含的内容提示词,一个对应你不希望图形出现的内容提示词。 二.如何书写提示词 1.内…

记一次VulnStack渗透

信息收集 netdiscover的主机发现部分不再详解,通过访问端口得知20001-2003端口都为web端口,所以优先考虑从此方向下手 外网渗透 GetShell Struct漏洞 访问2001端口后,插件Wappalyzer爬取得知这是一个基于Struct的web站点,直接…

gtkmm4 应用程序使用 CSS 样式

文章目录 前言css选择器css文件示例源代码效果 前言 程序样式和代码逻辑分离开 使代码逻辑更可观 css选择器 Cambalache提供了两种css-classes 相当于css里的类名:class“类名”css-name 相当于css里的标签名:spin div p 啥的 如上我设置了这个按钮控件的类名为testButton 标…

【Java】万万没想到,又被问ThreadLocal了

我待ThreadLocal如初恋,ThreadLocal虐我千百遍。但这一次,要彻底搞懂ThreadLocal 回顾一下面试名场面: 面试官:Handler如何做到与线程绑定的? 我:每个Handler只有一个相关联的Looper,线程绑定…

如何开始深度学习,从实践开始

将“如何开始深度学习”这个问题喂给ChatGPT和文心一言,会给出很有专业水准的答案,比如: 要开始深度学习,你可以遵循以下步骤: 学习Python编程语言的基础知识,因为它在深度学习框架中经常被使用。 熟悉线性…

自然人如何代开发票

1:登录国家税务总局深圳市电子税务局 地址:国家税务总局深圳市电子税务局 2:个人所得税APP 扫描登录 或 身份证登录 3:选择 自然人代开增值税电子普通发票 4:申请代开 5:人脸识别 6:画框的…

【每日一题】LeetCode——链表的中间结点

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有…

【Python4Delphi】学习笔记(一):介绍篇

一、前言: 1. python语言简介: 众所周知,python是目前非常流行的编程语言之一,自20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。 由于Python语言的简洁性、易读性以及可扩展性…

苏宁易购移动端首页(rem布局)

技术选型 方案∶采取单独制作移动页面方案技术:布局采取rem适配布局( less rem &#xff0b;媒体查询)设计图:设计图采用750px设计尺寸 设置视口标签以及引入初始化样式 <meta name"viewport" content"widthdevice-width, initial-scale1.0, user-scalable…

Qt网络编程-写一个简单的网络调试助手

环境 Windows&#xff1a;Qt5.15.2&#xff08;VS2022&#xff09; Linux&#xff1a;Qt5.12.12&#xff08;gcc) 源代码 TCP服务器 头文件&#xff1a; #ifndef TCPSERVERWIDGET_H #define TCPSERVERWIDGET_H #include <QWidget> namespace Ui { class TCPServerW…

注意啦,MySQL8.0最新版是没有utf8选项,但是有utf8mb3和utf8mb4选项

今天在安装完MySQL最新版&#xff08;8.0.36&#xff09;&#xff0c;然后用navicat连接数据&#xff0c;创建数据库的时候&#xff0c;发现: MySQL最新版是没有utf8选项&#xff0c;但是有utf8mb3和utf8mb4选项 然后就只能卸载掉最新版&#xff0c;安装了8.0.28. &#xff08…

一文学会Axios的使用

异步请求 同步发送请求过程如下 浏览器页面在发送请求给服务器&#xff0c;在服务器处理请求的过程中&#xff0c;浏览器页面不能做其他的操作。只能等到服务器响应结束后才能&#xff0c;浏览器页面才能继续做其他的操作。 异步发送请求过程如下浏览器页面发送请求给服务器&…

JavaScript 跨窗口通信(Cross-Window Communication)

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 在现代 Web 开发中&#xff0c;跨窗口通信是一种常见需求。它允许在…

服务器和云计算之间有什么关系?

云计算与服务器之间的关系是密切而复杂的。首先&#xff0c;我们需要明确一点&#xff0c;云计算并不是一种全新的技术&#xff0c;而是对现有技术的一种整合和改进。在这个基础上&#xff0c;我们可以更好地理解云计算与服务器之间的关系。 服务器是云计算的重要组成部分之一…

如何在Linux上部署1Panel运维管理面板并实现无公网ip远程访问

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

Python中使用opencv-python库进行颜色检测

Python中使用opencv-python库进行颜色检测 之前写过一篇VC中使用OpenCV进行颜色检测的博文&#xff0c;当然使用opencv-python库也可以实现。 在Python中使用opencv-python库进行颜色检测非常简单&#xff0c;首选读取一张彩色图像&#xff0c;并调用函数imgHSV cv2.cvtColor…

华为 Huawei 交换机 黑洞MAC地址的作用和配置示例

黑洞mac作用&#xff1a;某交换机上配置某个PC的mac地址为黑洞mac&#xff0c;那么这台PC发出来的包都会被交换机丢弃&#xff0c;不会被转发到网络中。 组网需求&#xff1a; 如 图 2-13 所示&#xff0c;交换机 Switch 收到一个非法用户的访问&#xff0c;非法用户的 MAC 地址…

C++新版本特性

目录: 前言 C11的常用新特性 auto类型推导&#xff1a; auto的限制&#xff1a; auto的应用&#xff1a; decltype类型推导&#xff1a; decltype的实际应用&#xff1a; 使用using 定义别名&#xff1a; 支持函数模板的默认模板参数 : tuple元组&#xff1a; 列表初…

每日OJ题_位运算①_位运算解题方法+3道OJ

目录 位运算算法原理 ①力扣191. 位1的个数 解析代码 ②力扣338. 比特位计数 解析代码 ③力扣461. 汉明距离 解析代码 位运算算法原理 常见位运算解题方法&#xff1a; 1. 基础位运算&#xff1a; &&#xff1a;按位与&#xff0c;有0就是0 | &#xff1a;按位或&a…

C++分支语句

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 大家新年快乐&#xff0c;今天&#xff0c;我们来了解一下分支语句。 文章目录 1.什么是分支语句 1.if语句 基本形式 用法说明 练习 2.if-else语句 基本形式 用法说明 练习 3.switch语句 基本形式…