python 中带有滑块的散点图
Scatter plot with a slider in python
嘿,我正在尝试创建一个带有滑块的散点图,滑块会在我滑过时更新绘图。到目前为止,这是我的代码。它绘制了一个散点图和一个滑块,但当我移动它时,没有任何反应。我怀疑问题出在 .set_ydata
位上,但我似乎无法在 Internet 上找到其他解决方法。
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)
可能重复:How to animate a scatter plot?
嘿,我正在尝试创建一个带有滑块的散点图,滑块会在我滑过时更新绘图。到目前为止,这是我的代码。它绘制了一个散点图和一个滑块,但当我移动它时,没有任何反应。我怀疑问题出在 .set_ydata
位上,但我似乎无法在 Internet 上找到其他解决方法。
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)
可能重复:How to animate a scatter plot?