12
与matplotlib做了一个传奇的简单情节产生如下:在我的传说的标签左侧的标记出现两次。任何人都可以知道为什么以及如何避免这个问题?我的命令是:Python的图例:标志出现两次
pl.plot(x1,x2,'g^', label='regional')
pl.plot(y1,y2,'bo', label='local')
pl.legend(loc='upper left')
谢谢
与matplotlib做了一个传奇的简单情节产生如下:在我的传说的标签左侧的标记出现两次。任何人都可以知道为什么以及如何避免这个问题?我的命令是:Python的图例:标志出现两次
pl.plot(x1,x2,'g^', label='regional')
pl.plot(y1,y2,'bo', label='local')
pl.legend(loc='upper left')
谢谢
您可以通过使用numpoints
关键字更改图例中标记的数量:
import matplotlib.pyplot as plt
import numpy as np
x1 = y1 = np.linspace(0, 10, 100)
x2 = np.sin(x1)
y2 = np.cos(y1)
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
plt.legend(loc='upper left', numpoints = 1)
plt.show()
我相信标记出现两次的原因(默认)是因为m atplotlib试图显示标记之间的线型连接器。没有连接器时,看起来有点奇怪。
如果情节有实线和虚线,
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
则传说是这样的:
,现在你可以看到线型的标志物之间的作用图例(以及图上)。
如果你不希望任何传说手柄的话,那么你可以使用
plt.legend(..., handlelength=0)
例如,
import numpy as np
import matplotlib.pyplot as plt
x1 = y1 = np.linspace(0, 10, 100)
x2 = np.sin(x1)
y2 = np.cos(y1)
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
plt.legend(loc='best', numpoints=1, handlelength=0)
plt.show()
你可以使用
plt.legend(loc='best', numpoints=1, handlelength=0,
markerscale=0, handletextpad=0)
删除图例标记。了解。
了解。非常感谢你! – Patrick
是否可以使线路连接器完全脱离?或者我需要使用'scatter()'命令吗? – Thriveth
我已经在上面添加了代码,说明如何做到这一点。 – unutbu