我试图在matplotlib中获得一个散点图的三维动画,基于here发布的2d散点图动画和here发布的3d线图.

问题来自set_data和set_offsets不能在3D中工作,所以你应该使用set_3d_properties来处理z信息.玩它通常会窒息,但下面张贴的代码会运行.然而,透明度增加到足以使点在几帧后逐渐消失.我在这做错了什么?我希望这些点在盒子的边界内跳一段时间.即使将步长调整到非常小的尺寸也不会减慢透明度.

import matplotlib.pyplot as plt

import matplotlib.animation as animation

import numpy as np

from mpl_toolkits.mplot3d import Axes3D

FLOOR = -10

CEILING = 10

class AnimatedScatter(object):

def __init__(self, numpoints=5):

self.numpoints = numpoints

self.stream = self.data_stream()

self.angle = 0

self.fig = plt.figure()

self.ax = self.fig.add_subplot(111,projection = '3d')

self.ani = animation.FuncAnimation(self.fig, self.update, interval=100,

init_func=self.setup_plot, blit=True)

def change_angle(self):

self.angle = (self.angle + 1)%360

def setup_plot(self):

x, y, z = next(self.stream)

c = ['b', 'r', 'g', 'y', 'm']

self.scat = self.ax.scatter(x, y, z,c=c, s=200, animated=True)

self.ax.set_xlim3d(FLOOR, CEILING)

self.ax.set_ylim3d(FLOOR, CEILING)

self.ax.set_zlim3d(FLOOR, CEILING)

return self.scat,

def data_stream(self):

data = np.zeros((3, self.numpoints))

xyz = data[:3, :]

while True:

xyz += 2 * (np.random.random((3, self.numpoints)) - 0.5)

yield data

def update(self, i):

data = next(self.stream)

data = np.transpose(data)

self.scat.set_offsets(data[:,:2])

#self.scat.set_3d_properties(data)

self.scat.set_3d_properties(data[:,2:],'z')

self.change_angle()

self.ax.view_init(30,self.angle)

plt.draw()

return self.scat,

def show(self):

plt.show()

if __name__ == '__main__':

a = AnimatedScatter()

a.show()

解决方法:

最后找到解决方案,这里是如何更新没有触摸颜色的点:

from mpl_toolkits.mplot3d.art3d import juggle_axes

scat._offsets3d = juggle_axes(xs, ys, zs, 'z')

这是由set_3d_properties内部完成以及重新初始化颜色

标签:python,matplotlib

来源: https://codeday.me/bug/20190928/1828896.html

python如何将三维图变成动态_python – 在matplotlib中制作动画三维散点图相关推荐

  1. 用matlab绘制P三曲线,知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线...

    导航:网站首页 > 知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线 知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画 ...

  2. 智能机器人STP电机定子装配STP可调节大行程移载机构STP5T单梁起重机三维图 SolidWorks机械式自动跟踪水位计全套 3D模型三维图纸川崎BX200L机器人钣金两边攻牙机3D

    智能机器人STP 电机定子装配STP 可调节大行程移载机构STP 5T单梁起重机三维图   SolidWorks 机械式自动跟踪水位计全套 3D模型三维图纸 川崎BX200L机器人 钣金两边攻牙机3D ...

  3. scatter python cmap_使用matplotlib中scatter方法画散点图

    本文实例为大家分享了用matplotlib中scatter方法画散点图的具体代码,供大家参考,具体内容如下 1.最简单的绘制方式 绘制散点图是数据分析过程中的常见需求.python中最有名的画图工具是 ...

  4. python制作简单动画_Python通过matplotlib简单绘制动画实例

    Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形.通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条 ...

  5. python绘制多个条形图_python – 在Matplotlib中绘制多个直方图 – 颜色或并排条形图...

    问题:在Matplotlib中绘制多个直方图时,我无法区分绘图与另一个绘图 图像问题:** **次要问题:部分左侧标签"计数"不在图像范围内.为什么? 描述 我想绘制3个不同组的直 ...

  6. python找不到scripts文件夹_Python目录下中没有Script文件夹

    其中需要将C:\python27\Scripts 和 C:\python27 添加到系统路径中. 计算机属性-远程设置-高级(环境变量)-系统变量PATH后面添加Scrips的路径 而我的Python ...

  7. 《Python数据可视化编程实战》——5.5 用OpenGL制作动画

    本节书摘来异步社区<Python数据可视化编程实战>一书中的第5章,第5.5节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...

  8. python中用plot绘制两条直线_在Matplotlib中绘制两条直线之间角度的最佳方法

    您可以使用^{}绘制相应角度度量值的弧. 绘制角弧: 定义一个函数,该函数可以接受2matplotlib.lines.Line2D个对象,计算角度并返回一个matplotlib.patches.Arc ...

  9. python绘制k线图的步骤_Python使用PyQtGraph绘制股票行情K线图

    PyQtGraph是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib库,由于其在内部实现方式上,使用了高速计算的numpy信号处理库以及Qt的GraphicsView框架, ...

最新文章

  1. 超级直播tv港澳台版2020_直播链接 2020年泉州足球超级联赛 第一轮
  2. Java的基本数据类型
  3. XXX管理平台系统——会议管理
  4. Android的圆角按钮和按钮颜色
  5. hdu4513--Manacher算法--回文串的O(n)算法
  6. Blazor 版 Bootstrap Admin 通用后台权限管理框架
  7. 【codevs1368】【BZOJ1034】泡泡堂BNB,贪心思路
  8. HTTP与Tcp协议下双工通信的差异
  9. WHATWG API——url.parse()的替代方案
  10. 挣脱浏览器的束缚(6) - AJAX也跨域名
  11. 三防数据存储: 3U Open VPX 存储模块
  12. 软件工程师的核心竞争力是什么
  13. MYSQL间隙锁详解
  14. 最近心血来潮,准备更新博客
  15. 这位.NET开发者曾说:“GitHub 存在的意义,是帮助开发人员”,但还是要离职了...
  16. 输入框只允许输入数字字母下划线
  17. 累涨超200%成华尔街新宠 Fastly借边缘云有望冲上“云”霄?
  18. 多多评价怎么显示第一个_拼多多商品质量分哪里看?怎么看评分?
  19. 几款了解点的嵌入式AI硬件分析
  20. Linux查看cpu、内存、硬盘命令

热门文章

  1. matlab背景图片上plot绘制图形
  2. Java学习day012(面向对象三大特征补充)
  3. Java线程基础(13):wait()和notify()
  4. Win7 下分析蓝屏原因的方法
  5. Chrome加载外部扩展程序控件的方法
  6. HTML5之canvas2
  7. 严格对角化(Exact diagonalization)介绍
  8. RPA UiPath认证考试
  9. 3500套公司常用表格
  10. 手动关闭WINDOWS 10 系统的自动更新功能