我只想做一个新的分散和删除以前的分散图但我不能的方法来删除以前的分散,所以分散的数量增加,当我点击鼠标我使保持一个分散当我点击鼠标左键这里是我的代码
与点击鼠标左键,我可以使分散的鼠标坐标和记录所有点击与点击鼠标右键,我可以删除所有分散
我只是保持一个分散与最近鼠标左键当我点击鼠标左键请帮助我
这是我代码
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(10, 8))
plt.grid(True)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Center Pin Coordinate')
plt.text(825, 750, 'left button: mark')
plt.text(825, 700, 'right button: import')
ax.set(xlim=[0, 925], ylim=[0, 750])
ax.set_aspect('auto', adjustable='box')
def add_point(event):
if event.inaxes != ax:
return
if event.button ==1:
xdata = event.xdata
ydata = event.ydata
xdata = round(xdata,1)
ydata = round(ydata,1)
plt.scatter(xdata, ydata, c='red', edgecolors='black', s=200)
plt.text(xdata, ydata, (xdata, ydata))
plt.show()
if event.button == 3:
xdata = []
ydata = []
# plt.scatter(xdata, ydata)
plt.cla()
plt.grid(True)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Center Pin Coordinate')
plt.text(825, 750, 'left button: mark')
plt.text(825, 700, 'right button: import')
ax.set(xlim=[0, 925], ylim=[0, 750])
ax.set_aspect('auto', adjustable='box')
plt.show()
cid = plt.connect('button_press_event', add_point)
plt.show()
1条答案
按热度按时间tktrz96b1#
可通过当前轴
collections
属性访问散布点要移除散射点,请在
collections
属性中对每个集合调用.remove()
。您可能希望对关联的文本执行相同的操作,这些文本可通过当前轴
texts
属性访问但是要小心,这也会删除你放在轴上的2个初始文本(
"left button: mark"
和"right button: import"
)。如果您确实希望保持图形不变,可以使用以下语句对这两个特定文本的
remove()
调用进行转义:下面是一个最小的版本,应该工作如你所愿:
一串随机点击(左)
然后单击鼠标右键