当前位置: 首页 > 面试题库 >

Python-如何为散点图制作动画?

华永逸
2023-03-14
问题内容

我正在尝试制作散点图的动画,其中点的颜色和大小在动画的不同阶段会发生变化。对于数据,我有两个带有x值和y值的numpy ndarray:

data.shape = (ntime, npoint)
x.shape = (npoint)
y.shape = (npoint)

现在我想绘制一个散点图

pylab.scatter(x,y,c=data[i,:])

并在索引上创建动画i。我该怎么做呢?


问题答案:

假设有一个散点图scat = ax.scatter(…),则可以

改变立场

scat.set_offsets(array)

其中array是N x 2x和y坐标的形状数组。

改变大小

scat.set_sizes(array)

其中array是以点为单位的一维尺寸数组。

改变颜色

scat.set_array(array)

其中array是一维值数组,将对其进行颜色映射。

这是一个使用animation模块的简单示例。
它比必须的要复杂一些,但是这应该为您提供一个做奇特的事情的框架。

(代码编辑于2019年4月以与当前版本兼容。有关旧代码,请参阅修订历史记录)

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np

class AnimatedScatter(object):
“”“An animated scatter plot using matplotlib.animations.FuncAnimation.”“”
def init(self, numpoints=50):
self.numpoints = numpoints
self.stream = self.data_stream()

    # Setup the figure and axes...
    self.fig, self.ax = plt.subplots()
    # Then setup FuncAnimation.
    self.ani = animation.FuncAnimation(self.fig, self.update, interval=5, 
                                      init_func=self.setup_plot, blit=True)

def setup_plot(self):
    """Initial drawing of the scatter plot."""
    x, y, s, c = next(self.stream).T
    self.scat = self.ax.scatter(x, y, c=c, s=s, vmin=0, vmax=1,
                                cmap="jet", edgecolor="k")
    self.ax.axis([-10, 10, -10, 10])
    # For FuncAnimation's sake, we need to return the artist we'll be using
    # Note that it expects a sequence of artists, thus the trailing comma.
    return self.scat,

def data_stream(self):
    """Generate a random walk (brownian motion). Data is scaled to produce
    a soft "flickering" effect."""
    xy = (np.random.random((self.numpoints, 2))-0.5)*10
    s, c = np.random.random((self.numpoints, 2)).T
    while True:
        xy += 0.03 * (np.random.random((self.numpoints, 2)) - 0.5)
        s += 0.05 * (np.random.random(self.numpoints) - 0.5)
        c += 0.02 * (np.random.random(self.numpoints) - 0.5)
        yield np.c_[xy[:,0], xy[:,1], s, c]

def update(self, i):
    """Update the scatter plot."""
    data = next(self.stream)

    # Set x and y data...
    self.scat.set_offsets(data[:, :2])
    # Set sizes...
    self.scat.set_sizes(300 * abs(data[:, 2])**1.5 + 100)
    # Set colors..
    self.scat.set_array(data[:, 3])

    # We need to return the updated artist for FuncAnimation to draw..
    # Note that it expects a sequence of artists, thus the trailing comma.
    return self.scat,

if name == ‘main’:
a = AnimatedScatter()
plt.show()
在此处输入图片说明

如果使用OSX并使用OSX后端,则需要在下面的初始化中将更改blit=True为。OSX后端不完全支持blitting。性能会受到影响,但是示例应在禁用blitting的情况下在OSX上正确运行。blit=FalseFuncAnimation

对于一个仅更新颜色的简单示例,请看以下内容:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation

def main():
numframes = 100
numpoints = 10
color_data = np.random.random((numframes, numpoints))
x, y, c = np.random.random((3, numpoints))

fig = plt.figure()
scat = plt.scatter(x, y, c=c, s=100)

ani = animation.FuncAnimation(fig, update_plot, frames=xrange(numframes),
                              fargs=(color_data, scat))
plt.show()

def update_plot(i, data, scat):
scat.set_array(data[i])
return scat,

main()



 类似资料:
  • 问题内容: 在Python中,使用Matplotlib,一个带有空圆的散点图怎么可能是 密谋?我们的目标是在一些彩色磁盘周围画一个空圆圈 已经被“scatter()”绘制,以便突出显示,理想情况下没有 不得不重新画彩色圆圈。 我试过“facecolors=None”,但没用。 问题答案: From the documentation for scatter: Try the following:

  • 问题内容: 我正在尝试在特定时间段内对图像进行动画处理。它在Objective C中可以正常工作。但是,对于Swift来说却不起作用,我的错误在哪里? Objective-C的代码是- 快速代码是- 问题答案: 这不是快速代码。很快就会 修改后的代码:

  • 本文向大家介绍python+matplotlib绘制饼图散点图实例代码,包括了python+matplotlib绘制饼图散点图实例代码的使用技巧和注意事项,需要的朋友参考一下 本文是从matplotlib官网上摘录下来的一个实例,实现的功能是Python+matplotlib绘制自定义饼图作为散点图的标记,具体如下。 首先看下演示效果 实例代码: 总结 以上就是本文关于python+matplot

  • 散点图沿 X 和 Y 轴放置的各个数据点来绘制数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水平对

  • 散点图沿 X 和 Y 轴放置的各个数据点来绘制数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水平对齐方式。 数据 颜色 设置数据系列的

  • 散点图沿 X 和 Y 轴放置的各个数据点来绘制数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水平对