mateplotlib绘制散点图_matplotlib画动态散点图

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)

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

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."""

data = np.random.random((4, self.numpoints))

xy = data[:2, :]

s, c = data[2:, :]

xy -= 0.5

xy *= 10

while True:

xy += 0.03 * (np.random.random((2, self.numpoints)) - 0.5)

s += 0.05 * (np.random.random(self.numpoints) - 0.5)

c += 0.02 * (np.random.random(self.numpoints) - 0.5)

yield data

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._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,

def show(self):

plt.show()

if __name__ == '__main__':

a = AnimatedScatter()

a.show()

一个简单的例子:

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()

原文:http://blog.csdn.net/yapian8/article/details/40627505

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值