栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

假设有一个散点图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()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/623832.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号