我熟悉以下问题:
Matplotlib savefig with a legend outside the plot
How to put the legend out of the plot
似乎这些问题中的答案都可以随意调整轴的精确收缩,以便与图例相吻合。
然而,缩小轴并不是一个理想的解决方案,因为它会使数据变得更小,实际上更难解释;特别是当它很复杂,有很多事情在发生时……因此需要一个大的图例
文档中复杂图例的示例演示了这种需要,因为它们图中的图例实际上完全遮挡了多个数据点。
http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots
我想要做的是动态扩展数字框的大小,以适应不断扩展的数字图例。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))
ax.grid('on')
注意最后的标签“反转黄褐色”实际上在图框外(而且看起来很糟糕--不是出版质量!)
最后,我被告知这是R和LaTeX中的正常行为,所以我有点困惑为什么这在python中这么难……有没有历史原因?在这个问题上,Matlab也同样糟糕吗?
我在pastebin http://pastebin.com/grVjc007上有这个代码的(只有一点点)更长的版本
https://stackoverflow.com/questions/10101700
复制相似问题