Python 如何从绘图中删除点?
我正在使用matplotlib.pyplot 我想做以下工作:Python 如何从绘图中删除点?,python,matplotlib,Python,Matplotlib,我正在使用matplotlib.pyplot 我想做以下工作: 我想绘制一系列背景点(图中的单个蓝点) 示例) 我添加了一系列额外的点(示例中有3个黑点) 我保留这个数字 我删除了附加的一系列点(黑色),并保留背景一个(蓝色) 如何执行步骤4?我想避免重复背景点 下面是缺少步骤4的代码示例 import matplotlib.pyplot as plt fig = plt.figure() plt.xlim(-10,10) plt.ylim(-10,10) #step 1: backgro
import matplotlib.pyplot as plt
fig = plt.figure()
plt.xlim(-10,10)
plt.ylim(-10,10)
#step 1: background blue dot
plt.plot(0,0,marker='o',color='b')
#step 2: additional black dots
points_list = [(1,2),(3,4),(5,6)]
for point in points_list:
plt.plot(point[0],point[1],marker='o',color='k')
#step 3: save
plt.savefig('test.eps')
#step 4: remove additional black dots
您可以使用:
#step 2
black_points, = plt.plot( zip(*points_list), marker="o", color="k")
#... step 3 ...
#...
#step 4
black_points.set_visible( False)
您可以使用:
#step 2
black_points, = plt.plot( zip(*points_list), marker="o", color="k")
#... step 3 ...
#...
#step 4
black_points.set_visible( False)
执行以下操作可以删除打印点:
temporaryPoints, = plt.plot(point[0],point[1],marker='o',color='k')
temporaryPoints.remove()
执行以下操作可以删除打印点:
temporaryPoints, = plt.plot(point[0],point[1],marker='o',color='k')
temporaryPoints.remove()
函数返回表示打印数据的对象列表。这些对象有一种方法,可以将它们从绘制在其上的图形中删除(请注意,Line2D
继承自Artist
,您可以通过Line2D进行检查。)
因此,您可以执行以下操作(我一次绘制了单点):
保持循环的,这将是:
points = []
for point in points_list:
points.extend(
plt.plot(point[0], point[1], marker='o', color='k')
)
for p in points:
p.remove()
或更简洁地使用列表理解:
points = [plt.plot(*p, marker='o', color='k')[0] for p in points_list]
函数返回表示打印数据的对象列表。这些对象有一种方法,可以将它们从绘制在其上的图形中删除(请注意,Line2D
继承自Artist
,您可以通过Line2D进行检查。)
因此,您可以执行以下操作(我一次绘制了单点):
保持循环的,这将是:
points = []
for point in points_list:
points.extend(
plt.plot(point[0], point[1], marker='o', color='k')
)
for p in points:
p.remove()
或更简洁地使用列表理解:
points = [plt.plot(*p, marker='o', color='k')[0] for p in points_list]
谢谢,如果我在第一行的“临时点”后面加一个逗号就可以了。谢谢,如果我在第一行的“临时点”后面加一个逗号就可以了。