我有一个图,我想在其中绘制以下两个数据集
x1,y1 = np.random.normal(0,1, (2,20)) # dataset 1
x2,y2 = np.random.normal(0,1, (2,20))
# Next, I create a plot and the PathCollection from the scatter
fig, ax = plt.subplots()
ax = plt.gca()
p = ax.scatter(x1, y1)
# I create two functions, each set the data using a different data set
def set_data1(event):
p.set_offsets(x1, y2)
plt.draw()
def set_data2(event):
p.set_offsets(x2, y2)
plt.draw()
# Location for the buttons
btn_1_loc = fig.add_axes( [0.02, 0.90, 0.2, 0.075])
btn_2_loc = fig.add_axes( [0.02, 0.80, 0.2, 0.075])
# Now, actually add the buttons
btn_1 = Button(btn_1_loc, 'Button 1')
btn_1.on_clicked(set_data1)
btn_2 = Button(btn_2_loc, 'Button 2')
btn_2.on_clicked(set_data2)
这将创建一个带有按钮的图。当我单击按钮时,数据不会改变。如果我改为用p.set_facecolor(color1)
和color2
更改点的颜色,图会改变并更新。
如何使用这两个按钮更改点的(x,y)位置?
1条答案
按热度按时间oxiaedzo1#
set_offsets
接受一个2D数组,您传递的是两个单独的数组。解决方法: