Matplotlib:图例¶
日期 | 2011-11-09(最后修改),2007-04-11(创建) |
---|
叠加线和标记的图例¶
如果您有很多点要绘制,您可能希望每隔 *n* 个点设置一次标记,例如
在 [ ]
plot(x, y, '-r')
plot(x[::20], y[::20], 'ro')
然后自动图例将其视为两个不同的绘图。一种方法是创建一个额外的线对象,该对象不在任何地方绘制,但仅用于图例
在 [ ]
from matplotlib.lines import Line2D
line = Line2D(range(10), range(10), linestyle='-', marker='o')
legend((line,), (label,))
另一种可能性是在图例中修改线对象
在 [ ]
line = plot(x, y, '-r')
markers = plot(x[::20], y[::20], 'ro')
lgd = legend([line], ['data'], numpoints=3)
lgd.get_lines()[0].set_marker('o')
draw()
图例在绘图之外¶
没有简单易行的方法可以将图例添加到绘图之外(在绘图的右侧),但是如果您首先将轴设置正确,它就可以正常工作
在 [ ]
figure()
axes([0.1,0.1,0.71,0.8])
plot([0,1],[0,1],label="line 1")
hold(1)
plot([0,1],[1,0.5],label="line 2")
legend(loc=(1.03,0.2))
show()
从绘图中删除图例¶
可以简单地将轴的属性设置为并重新绘制
在 [ ]
ax = gca()
ax.legend_ = None
draw()
如果您发现自己经常这样做,请使用以下函数
在 [ ]
def remove_legend(ax=None):
"""Remove legend for ax or the current axes."""
from pylab import gca, draw
if ax is None:
ax = gca()
ax.legend_ = None
draw()
(来源:Re: 如何从 matplotlib OO 图表中删除图例?)
更改图例文本的字体大小¶
请注意,要设置默认字体大小,可以在 matplotlib rc 参数文件中更改 *legend.size* 属性。
要更改单个绘图的字体大小,请在创建图例时使用 matplotlib.font_manager.FontProperties 参数 *prop*。
在 [ ]
x = range(10)
y = range(10)
handles = plot(x, y)
legend(handles, ["label1"], prop={"size":12})
部分作者:Unknown[77],GaelVaroquaux,Unknown[103],Unknown[104],TimSwast