嘿,我
正在尝试创建一个带有滑块的散点图,该滑块会在我滑动时更新图。这是我到目前为止的代码。它绘制了一个散点图和一个滑块,但是当我移动它时,没有任何反应。我怀疑问题出在.set_ydata
位上,但我似乎无法在互联网上找到其他方法。
import numpy as np
from matplotlib.widgets import Slider
from pylab import plot, show, figure, scatter, axes, draw
fig = figure()
ax = fig.add_subplot(111)
x, y = np.random.rand(2,100)
scat = scatter(x,y)
axcolor = 'lightgoldenrodyellow'
axamp = axes([0.2, 0.01, 0.65, 0.03], axisbg=axcolor)
scorr = Slider(axamp, 'corr', -2,2, valinit=1)
def update(val):
corr = scorr.val
for i in range(len(x)):
x[i]=x[i]+corr*np.random.randn()
for i in range(len(y)):
y[i]=y[i]+corr*np.random.randn()
scat.set_xdata(x)
scat.set_ydata(y)
draw()
scorr.on_changed(update)
show(scat)
这只是一个公平的测试脚本。我必须用更复杂的脚本做同样的事情,但意识到在更简单的问题上尝试它会更容易。我真的只关心scat.set_ydata
以及放什么,以便它工作。
提前谢谢。
您需要
使用set_offsets
和set_array
:
# make sure you get the right dimensions and direction of arrays here
xx = np.vstack ((x, y))
scat.set_offsets (xx.T)
# set colors
scat.set_array (y)
可能重复:如何为散点图制作动画?