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.rhkb.cn/news/253835.html

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

相关文章

【小白开服日记】幻兽帕鲁服务器如何搭建?

玩转幻兽帕鲁服务器,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

时序预测 | MATLAB实现基于CNN-BiLSTM-AdaBoost卷积双向长短期记忆网络结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于CNN-BiLSTM-AdaBoost卷积双向长短期记忆网络结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于CNN-BiLSTM-AdaBoost卷积双向长短期记忆网络结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab实现…

多线程基础

线程与进程 进程 进程是对运⾏时程序的封装,是系统进⾏资源调度和分配的基本单位,实现了操作系统的并发。程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存&…

Arthas使用教程—— 阿里开源线上监控诊断产品

文章目录 1 简介2背景3 图形界面工具 arthas 阿里开源3.1 :启动 arthas3.2 help :查看arthas所有命令3.3 查看 dashboard3.4 thread 列出当前进程所有线程占用CPU和内存情况3.5 jvm 查看该进程的各项参数 (类比 jinfo)3.6 通过 jad 来反编译 …

2-1 动手学深度学习v2-Softmax回归-笔记

回归 VS 分类 回归估计一个连续值分类预测一个离散类别 从回归到多类分类 回归 单连续数值输出输出的区间:自然区间 R \mathbb{R} R损失:跟真实值的区别 分类 通常多个输出(这个输出的个数是等于类别的个数)输出的第 i i i…

Flink Format系列(2)-CSV

Flink的csv格式支持读和写csv格式的数据,只需要指定 format csv,下面以kafka为例。 CREATE TABLE user_behavior (user_id BIGINT,item_id BIGINT,category_id BIGINT,behavior STRING,ts TIMESTAMP(3) ) WITH (connector kafka,topic user_behavior…

机器学习——有监督学习和无监督学习

有监督学习 简单来说,就是人教会计算机学会做一件事。 给算法一个数据集,其中数据集中包含了正确答案,根据这个数据集,可以对额外的数据希望得到一个正确判断(详见下面的例子) 回归问题 例如现在有一个…

17:定时器编程实战

1、实验目的 (1)使用定时器来完成LED闪烁 (2)原来实现闪烁时中间的延迟是用delay函数实现的,在delay的过程中CPU要一直耗在这里不能去做别的事情。这是之前的缺点 (3)本节用定时器来定一个时间(譬如0.3s),在这个定时器定时时间内…

Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案

目录 发现问题 解决办法 第一步 第二步 第三步 第四步 最后一步 问题解决 发现问题 如果大家也遇到下面这种问题,可能是没有include文件夹中没有bits/stdc.h 解决办法 第一步 打开一个C项目,鼠标移动至头文件上右击,选择转到文档或…

嵌入式学习之Linux入门篇笔记——10,Linux连接档概念

配套视频学习链接:http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 目录 1.Linux 下的连接档种类 2.什么是 inode? 3.什…

【HarmonyOS应用开发】HTTP数据请求(十四)

文章末尾含相关内容源代码 一、概述 日常生活中我们使用应用程序看新闻、发送消息等,都需要连接到互联网,从服务端获取数据。例如,新闻应用可以从新闻服务器中获取最新的热点新闻,从而给用户打造更加丰富、更加实用的体验。 那么…

支持534种语言,开源大语言模型MaLA-500

无论是开源的LLaMA 2还是闭源的GPT系列模型,功能虽然很强大,但对语言的支持和扩展比较差,例如,二者都是以英语为主的大模型。 为了提升大模型语言的多元化,慕尼黑大学、赫尔辛基大学等研究人员联合开源了,…

Windows 安装 MySQL 最新最简教程

Windows 安装 MySQL 最新最简教程 官网地址 https://dev.mysql.com/downloads/mysql/下载 MySQL zip 文件 配置 MySQL1、解压文件 2、进入 bin 目录 搜索栏输入 cmd 回车进入命令行 C:\Users\zhong\Desktop\MySQL\mysql-8.3.0-winx64\mysql-8.3.0-winx64\bin 注意这里是你自己…

Java图形化界面编程——Container容器 笔记

2.3 Container容器 2.3.1 Container继承体系 Winow是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局;Panel可以容纳其他组件,但不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout管理其内部组件布局;S…

物理信息神经网络(PINN): 将物理知识融合到深度学习中

物理信息神经网络(PINN): 将物理知识融合到深度学习中 物理信息神经网络(PINN)简介PINN的工作原理PINN模型如何利用物理法则指导模型训练1. 定义物理问题和相应的物理定律2. 构建神经网络3. 定义损失函数数据误差项 (Data-fidelit…

Flask 入门6:模板继承

1. 一个网站中,大部分网页的模块是重复的,比如顶部的导航栏,底部的备案信息。如果在每个页面中都重复的去写这些代码,会让项目变得臃肿,提高后期的维护成本。比较好的做法是,通过模板继承,把一…

Netty中使用编解码器框架

目录 什么是编解码器? 解码器 将字节解码为消息 将一种消息类型解码为另一种 TooLongFrameException 编码器 将消息编码为字节 将消息编码为消息 编解码器类 通过http协议实现SSL/TLS和Web服务 什么是编解码器? 每个网络应用程序都必须定义如何…

解决CORS错误(Spring Boot)

记录一下错误,以博客的形式 前言 跨域(Cross-Origin)是指在Web开发中,当一个Web应用试图从一个源(域名、协议、端口组合)获取资源时,该请求的目标与当前页面的源不同。具体来说,当一…

25、数据结构/二叉树相关练习20240207

一、二叉树相关练习 请编程实现二叉树的操作 1.二叉树的创建 2.二叉树的先序遍历 3.二叉树的中序遍历 4.二叉树的后序遍历 5.二叉树各个节点度的个数 6.二叉树的深度 代码&#xff1a; #include<stdlib.h> #include<string.h> #include<stdio.h> ty…

SolidWorks学习笔记——入门知识2

目录 建出第一个模型 1、建立草图 2、选取中心线 3、草图绘制 4、拉伸 特征的显示与隐藏 改变特征名称 5、外观 6、渲染 建出第一个模型 1、建立草图 图1 建立草图 按需要选择基准面。 2、选取中心线 图2 选取中心线 3、草图绘制 以对称图形举例&#xff0c;先画出…