python 画图|三维散点图输出

【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 xani=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 pltimport matplotlib.animation as animation
from matplotlib.projections import projection_registryfig=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,yani=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.rhkb.cn/news/445870.html

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

相关文章

Docker 教程四 (Docker 镜像加速)

Docker 镜像加速 国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。 目前国内 Docker 镜像源出现了一些问题,基本不能用了,后期能用我再更新下。* Docker 官方和国内很多云服务商都提供了国内加速器服务,例如…

STM32 SPI串行总线

目录 STM32的SPI通信原理 SPI串行总线概述 SPI串行总线互连方式 STM32F1 SPI串行总线的工作原理 SPI串行总线的特征 SPI串行总线的内部结构 SPI串行总线时钟信号的相位和极性 STM32的SPI接口配置 STM32的SPI接口数据发送与接收过程 SPI的HAL 驱动函数 STM32的SPI通信…

vue+ElementUI—实现基础后台管理布局(sideBar+header+appMain)(附源码)

后台管理的模板很多,vue本身就提供了完整的vue-template-admin,vue-admin-beautiful等后台管理系统化框架,但是这些框架正是因为成体系而显得繁重。假如你想搭建一个静态的后台管理模板页面和几个单独的菜单页面,直接就上框架是否…

STM32CubeIDE使用ADC采用DMA重大BUG

问题描述 STM32CubeIDE 1.8.0问题 大牛攻城狮最近调试STM32L151CBT6。由于项目上使用该款芯片做控制电源使用,其中涉及到多路ADC的数据采样。使用STM32CubeIDE 1.8.0版本详细如下图所示 注意这里的使用的软件版本号很关键。采用该款软件搭建工程,第一次…

物联网如何推动工业数字化转型?

全球步入数字经济时代,制造业的数字化转型已成为驱动经济发展的核心引擎。物联网作为工业数字化转型的强力推手,其深度融入不仅促进了生产流程的智能化与自动化,还实现了数据的实时分析与精准决策,为制造业企业带来了前所未有的创…

基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用

大家好,我是微学AI,今天给大家介绍一下基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用。本文深入探讨了Langchain框架下的Prompt工程在调教LLM(大语言模型)方面的应用&#xff0c…

高效微调理解(prompt-tuning,p-tuning v1,p-tuning v2,lora)

高效微调(prompt-tuning,p-tuning v1,p-tuning v2,lora) 1.prompt-tuning: 例子理解;保持原本模型参数不变,通过训练提示词的参数调整prompt,使其与下游任务匹配。 例子…

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(动态新增、修改等操作)

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(动态新增、修改等操作) 前言数据库脚本创建需要被调度的方法创建相关实体类创建业务层接口创建业务层实现类控制层类测试结果 前言 我这边的SpringBoot的版本为2…

用java来编写web界面

一、ssm框架整体目录架构 二、编写后端代码 1、编写实体层代码 实体层代码就是你的对象 entity package com.cv.entity;public class Apple {private Integer id;private String name;private Integer quantity;private Integer price;private Integer categoryId;public…

libaom 源码分析系列:noise_model.c 文件

libaom libaom 是 AOMedia(开放媒体联盟)开发的一个开源视频编解码器库,它是 AV1 视频压缩格式的参考实现,并被广泛用于多种生产系统中。libaom 支持多种功能,包括可扩展视频编码(SVC)、实时通信(RTC)优化等,并定期进行更新以提高压缩效率和编码速度 。 libaom 的一些…

2.1 HTML5 - Canvas标签

文章目录 引言Canvas标签概述定义实例:创建画布 理解Canvas坐标系概述实例:获取Canvas坐标 获取Canvas环境上下文概述实例:获取Canvas上下文设置渐变色效果 结语 引言 大家好,今天我们要一起探索HTML5中一个非常有趣且强大的特性…

Redhat的yum源出错——如何将yum源换成阿里云Centos源

文章目录 引言1. 查看和删除已安装的yum包2. 查看系统的版本号3. 镜像文件下载4. 镜像文件安装5. 下载和安装repo文件6. 配置repo文件7. 更新软件包缓存8. 验证9. 问题问题1 参考文献 Linux RedHat更换阿里云yum源 Redhat8.0 yum install问题解决 阿里云镜像 引言 为什么redha…

六西格玛黑带项目:TBX-02无人机飞行稳定性提升——张驰咨询

一、项目背景与问题定义 TBX-02是该公司最新发布的消费级无人机,面向摄影爱好者和户外探险者。产品上市后,通过客户反馈和实际测试数据发现,该无人机在复杂飞行环境中,如强风或快速移动时,存在明显的飞行抖动和稳定性…

【AIGC】OpenAI API在快速开发中的实践与应用:优化ChatGPT提示词Prompt加速工程

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯使用最新型号确保最佳实践利用最新模型进行高效任务处理为什么要选择最新模型?结论 💯指令与上下文的分隔最佳实践分隔指令和上下文的重要性使用符…

一起体验AI动手实验,OceanBase 2024 年度发布会精彩预告

2024年OceanBase年度发布会将于10月23日在北京望京凯悦酒店举行。此次大会围绕“不止于记录”的主题,共同探讨当前数据库领域的前沿话题,包含主论坛、分论坛、AI 动手实训营、开源技术交流会等多个环节,诚邀全国各地的企业和开发者共同参与&a…

[论文期刊|稳定检索]2024年信号处理与光学工程国际会议(SPOE 2024 )

2024年信号处理与光学工程国际会议 2024 International Conference on Signal Processing and Optical Engineering 【1】大会信息 会议名称:2024年信号处理与光学工程国际会议 会议简称:SPOE 2024 大会时间:请查看官网 大会地点&#xf…

51单片机的智能电饭煲【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温度传感器继电器按键、LED等模块构成。适用于智能电饭锅等相似项目。 可实现功能: 1、LCD1602实时显示温度、运行模式、煮饭等模式的计时时间 2、首先选择电饭锅的模式,如煮饭、煮粥、蒸、煲汤&#…

Android常用界面控件——ProgressBar

ProgressBar 目录 ProgressBar 在XML中定义ProgressBar ProgressBar风格样式 ProgressBar常用XML属性 在Java代码中控制ProgressBar 实例 什么是ProgressBar? ProgressBar是Android中的一个视图控件,主要用于表示一个任务的进度情况,…

【AI视频】复刻抖音爆款AI数字人作品初体验

博客主页: [小ᶻZ࿆] 本文专栏: AI视频 | AI数字人 文章目录 💯前言💯抖音上的爆火AI数字人视频💯注册HeyGen账号💯复刻抖音爆款AI数字人💯最终生成效果💯小结 对比原视频效果:…

有了WPF后Winform还有活路吗?

近年来,随着技术的不断发展,Windows Presentation Foundation(WPF)和Windows Forms(WinForms)这两种技术在开发桌面应用程序方面一直备受关注。虽然WPF以其强大的功能和灵活性吸引了众多开发者,…