使用pyplot,我创建了一个数字并绘制了一些随机分散的(x,y)点。然后我想用线段连接这些点的一些子集。用户按下一个键后,我的程序需要删除先前绘制的一组线段(保留原始点),然后在另一组点之间绘制新的段。
我的问题是我不知道如何删除前面的线段。我尝试用背景颜色(白色)重新绘制它们,但这会留下线条所在的非白色像素残留。我在在线文档中找不到任何这样做的例子。是否可能,如果可能,怎么样?
答案 0 :(得分:3)
Scipy有一个tutorial用于从轴中删除一条线。我在下面的例子中使用它,我认为它模仿你想要做的事情:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
np.random.seed(101)
y = np.random.rand(10)
small = [i for i in range(len(x)) if y[i] < .5 ]
big = [i for i in range(len(x)) if y[i] > .5 ]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(x,y)
# user wants to plot lines connecting big values (>.5)
ax.plot(x[big],y[big])
#plt.show()
# now user wants to delete the first (and only) line
del ax.lines[0]
# so that they can plot a line only showing small values
ax.plot(x[small],y[small])
plt.show()
答案 1 :(得分:0)
你不得不清理情节并重新绘制你的观点。命令为 clf()
。
我刚才意识到我有点不对劲。查找artists
概念,它允许您将某些绘制的对象定义为静态,将其他对象定义为动态。我已将它用于动画,但它也适用于此。这是一个tutorial。