python 画图|三维散点图输出

news2024/12/24 9:45:38

【1】引言

在前述学习进程中,已经初步掌握三维动画输出和散点图动画输出基本技能,可通过下述链接直达:

python画图|散点图动态输出-CSDN博客

python动画教程|Animations using Matplotlib-官网教程程序解读_如何用python制作微动画-CSDN博客

在此基础上,很容易想到在三维空间输出散点动画,经过一段时间的探索,这个技能已经初步掌握,现在分享给大家。

【2】核心代码

【2.1】ax = fig.add_subplot(projection='3d')

在前述有关联的学习中,可以分为三大类:三维图、散点图和动画。

经过追溯,画三维图需要使用下述代码进行说明

ax = fig.add_subplot(projection='3d')

使用这些代码的文章链接包括且不限于:

python画图|同时输出二维和三维图_python怎么输出3d图-CSDN博客

python画图|极坐标下的3D surface_python 图片surface3d-CSDN博客

python画图|3D直方图基础教程-CSDN博客 

【2.2】plt.scatter(x,y)或ax.scatter(x,y)

画散点图需要使用下述代码进行说明:

plt.scatter(x,y)

ax.scatter(x,y)

使用这些代码的文章链接包括且不限于:  

python画散点图|scatter()函数小试牛刀(入门级教程)_python ax.scatter-CSDN博客

python画图|极坐标中画散点图_极坐标散点图-CSDN博客

【2.3】plt.scatter(x,y)或ax.scatter(x,y)

画动画需要使用下述代码进行说明:

ani = animation.FuncAnimation(fig, animate, interval=50)

使用这些代码的文章链接包括且不限于:

 

python动画教程|Animations using Matplotlib-官网教程程序解读_如何用python制作微动画-CSDN博客

python画图|曲线动态输出基础教程-CSDN博客 

python画图|散点图动态输出-CSDN博客 

【3】自主编写三维散点图输出代码

按照以前的学习思路,首先引入关键模块:计算、画图和动画:

import numpy as np #引入计算模块
import matplotlib.pyplot as plt #引入画图模块

import matplotlib.animation as animation #引入动画模块

然后定义画图:

fig=plt.figure() #定义要画图
ax=fig.add_subplot(projection='3d') #定义画三维图

之后定义变量和初始值:

t=np.linspace(0,2*np.pi,100) #定义自变量
x=ax.scatter(0,0,0) #定义初始值

在此基础上进行动画函数的自定义,以实现散点逐个输出:

def animate(i): #定义动画函数,将散点图逐个输出
   ax.scatter(t[i],np.cos(t[i]),np.sin(t[i]))

   return x

最后制作动画将其输出:

ani=animation.FuncAnimation( #输出动画
    fig,animate,repeat=True,interval=10
)

plt.show() #输出图形

输出图形为:

图1

至此的完整代码为:

import numpy as np #引入计算模块
import matplotlib.pyplot as plt #引入画图模块

import matplotlib.animation as animation #引入动画模块

fig=plt.figure() #定义要画图
ax=fig.add_subplot(projection='3d') #定义画三维图

t=np.linspace(0,2*np.pi,50) #定义自变量
x=ax.scatter(0,0,0) #定义初始值
def animate(i): #定义动画函数,将散点图逐个输出
   ax.scatter(t[i],np.cos(t[i]),np.sin(t[i]))

   return x

ani=animation.FuncAnimation( #输出动画
    fig,animate,repeat=True,interval=10)

ani.save('scatter-aixmls.gif') #保存动画
plt.show() #输出图形

【4】代码改写

尝试画两条曲线,定义代码如下:

x=ax.scatter(0,0,0)
y=ax.scatter(0,0,0)
def animate(i):
   ax.scatter(t[i],np.cos(t[i]),np.sin(t[i]))
   ax.scatter(t[i], np.sin(t[i]), np.cos(t[i]))

   return x,y

输出图像为:

图2

对应完整代码为:

import numpy as np
import matplotlib.pyplot as plt

import matplotlib.animation as animation
from matplotlib.projections import projection_registry

fig=plt.figure()
ax=fig.add_subplot(projection='3d')

t=np.linspace(0,2*np.pi,100)
x=ax.scatter(0,0,0)
y=ax.scatter(0,0,0)
def animate(i):
   ax.scatter(t[i],np.cos(t[i]),np.sin(t[i]))
   ax.scatter(t[i], np.sin(t[i]), np.cos(t[i]))

   return x,y

ani=animation.FuncAnimation(
    fig,animate,repeat=True,interval=10
)
ax.legend()
ani.save('scatter-aixmls-2lines.gif') #保存动画
plt.show()

【5】增加图名

非常简单,给图像增加名称:

ax.set_title('3d-scatter-aixmls-2lines')

图3

【6】总结

自主探索了三维散点图输出教程。

 

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

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

相关文章

【实时计算 Flink】DataStream作业大状态导致反压的调优原理与方法

状态管理不仅影响应用的性能,还关系到系统的稳定性和资源的有效利用。如果状态管理不当,可能会导致性能下降、资源耗尽,甚至系统崩溃。Flink Datastream API在状态管理方面提供了非常灵活的接口,您可以采取相关措施来确保状态大小…

Word粘贴时出现“文件未找到:MathPage.WLL”的解决方案

解决方案 一、首先确定自己电脑的位数(这里默认大家的电脑都是64位)二、右击MathType桌面图标,点击“打开文件所在位置”,然后分别找到MathPage.WLL三、把这个文件复制到该目录下:C:\Program Files\Microsoft Office\r…

Ubuntu 详解| Ubuntu ssh| Ubuntu apt命令大全| Ubuntu性能优化| Ubuntu换镜像源

Ubuntu 是Debian开源linux系统体系下的子分支之一 Debian-ubuntu 和它一样的还有 kali(一款渗透测试软件) Debian-kali 小白参考 :Centos 7.9 安装 图解版 小白必看 最新_centos7.9-CSDN博客文章浏览阅读2.5k次,点赞…

vue3.0 + vite:中使用 sass

1、安装依赖 npm i sass sass-loader --save-dev 在项目的src/assets文件夹下新建style/index.scss 文件 2、在 vite.config.ts 中加: resolve: {alias: {: fileURLToPath(new URL(./src, import.meta.url))} }, css: {// 配置 SCSS 支持preprocessorOptions: {s…

Mybatis Plus连接使用ClickHouse也如此简单

通过阅读列式数据库ClickHouse官网&#xff0c;不难看出它有支持JDBC规范的驱动jar包&#xff0c;可以直接集成到Object Relational Mapping框架等&#xff0c;下面我用SpringBootMybatisPlus环境连接ClickHouse来演示一下 集成步骤 1.Maven引入ClickHouse提供的JDBC依赖 <…

解决海外社媒风控问题的工具——云手机

随着中国企业逐步进入海外市场&#xff0c;海外社交媒体的风控问题严重影响了企业的推广效果与账号运营。这种背景下&#xff0c;云手机作为一种新型技术解决方案&#xff0c;正日益成为企业应对海外社媒风控的重要工具。 由于海外社媒的严格监控&#xff0c;企业经常面临账号流…

linux驱动-platform子系统

目录 1.传统字符设备驱动框架的缺点 2.总线、设备、驱动 3.设备注册 4.驱动注册 1.传统字符设备驱动框架的缺点 缺点&#xff1a;驱动可移植性差&#xff0c;原因是驱动里面包括了很多该芯片特有的消息&#xff0c;如果是其他平台&#xff0c;硬件信息会有差异&#xff0c;…

七、Linux 之用户管理

基本介绍 Linux 系统是一个多用户多任务的操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统 添加用户 useradd 用户名添加一个用户 milan, 默认该用户的家目录在 /home/milan 细节说…

深入Postman- 自动化篇

前言 在前两篇博文《Postman使用 - 基础篇》《玩转Postman:进阶篇》中,我们介绍了 Postman 作为一款专业接口测试工具在接口测试中的主要用法以及它强大的变量、脚本功能,给测试工作人员完成接口的手工测试带来了极大的便利。其实在自动化测试上,Postman 也能进行良好的支…

【特赞-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

SQL分类中的DDL

DDL&#xff08;Data Definition Language):数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库&#xff0c;表&#xff0c;字段&#xff09;。 一、DDL语句操作数据库 1、查询所有数据库&#xff1a;show databases&#xff1b;&#xff08;一般用大写&#xff…

自动化——RPA——影刀——批量刷视频

前言 影刀底层是python https://www.yingdao.com/ 需求 实现视频集的定时点击和播放。 要点 第一步&#xff1a;将需要播放的视频链接放到excel中&#xff0c;excel的名字自定义&#xff0c;本文为“批量刷视频”。 第二步&#xff1a;使用影刀的“打开/新建Excel”功能&…

汽车免拆诊断案例 | 2022款大众捷达VS5车行驶中挡位偶尔会锁在D3挡

故障现象  一辆2022款大众捷达VS5汽车&#xff0c;搭载EA211发动机和手自一体变速器&#xff0c;累计行驶里程约为4.5万km。该车行驶中挡位偶尔会锁在D3挡&#xff0c;车速最高约50 km/h&#xff0c;且组合仪表上的发动机故障灯和EPC灯异常点亮。 故障诊断  用故障检测仪检…

Centos7快速安装配置RabbitMQ

1. 卸载现有的 RabbitMQ 和 Erlang&#xff08;可选&#xff09; # 停止 RabbitMQ 服务 sudo systemctl stop rabbitmq-server# 卸载 RabbitMQ sudo yum remove -y rabbitmq-server# 卸载 Erlang sudo yum remove -y erlang# 删除 RabbitMQ 残留文件 sudo rm -rf /var/lib/rab…

smartctl 设置硬盘的 write-caching

sg3 一、sg3查看缓存状态 您可以使用sg_modes命令来查看SAS盘和SATA盘的缓存状态。例如&#xff0c;要查看/dev/sdb设备的缓存状态&#xff0c;您可以执行以下命令&#xff1a; sg_modes -p 8,0 /dev/sdb 二、sg3关闭机械盘写缓存状态&#xff08;仅适用于SAS盘&#xff09…

ollama + fastgpt+m3e本地部署

ollama fastgptm3e本地部署 开启WSL更新wsl安装ubuntu docker下载修改docker镜像源开启WSL integration 安装fastgpt先创建一个文件夹来放置一些配置文件用命令下载fastgpt配置文件用命令下载docker的部署文件 启动容器M3E下载ollama下载oneapi配置登录oneapi配置ollama渠道配…

拥抱云原生

专题七&#xff1a;云原生实战72课时 专题简介&#xff1a; 云原生正在改变世界&#xff0c;新一代架构思想ServiceMesh、Serverless改变传统软件架构模式&#xff0c;本专题基于完全云上架构实战&#xff0c;结合微服务架构和云计算平台两者的优势&#xff0c;属于架构师必备…

LabVIEW智能可变温循环PCT测试系统

随着全球能源危机的加剧和环境保护需求的提升&#xff0c;开发和利用清洁能源已成为全球必然趋势。氢能作为一种高效的替代能源&#xff0c;正逐步受到关注。然而&#xff0c;储氢技术的研究至关重要&#xff0c;尤其是储氢材料的PCT&#xff08;Pressure-Composition-Temperat…

如何使用UART(STM32 HAL库)

UART &#xff08;通用异步收发器&#xff09;是在 USART &#xff08;通用同步异步收发器&#xff09;基础上裁剪掉了同步通信功能&#xff0c;只剩下异步通信功能。关于通信和串口的基本知识&#xff0c;可参见文章《串口通信简介-CSDN博客》和《数据通信的一些基础概念-CSDN…

红杉资本行业总结篇:生成式 AI 的发展

Datawhale干货 最新&#xff1a;红杉资本&#xff0c;全球著名风险投资公司 生成式 AI 的发展&#xff1a;从 “快思考” 到 “慢思考”&#xff0c;开启自主应用的新篇章。 在生成式 AI 革命的两年里&#xff0c;研究方向正从 “快思考”&#xff08;快速预训练响应&#xff…