我对以下问题比较熟悉:
似乎这些问题的答案可以随意调整坐标轴的收缩,这样传说才会符合。
然而,缩小坐标轴并不是一个理想的解决方案,因为它使数据更小,实际上更难以解释;特别是当它很复杂,有很多事情在发生的时候……因此需要一个大的图例
文档中的一个复杂图例说明了这样做的必要性,因为图中的图例实际上完全掩盖了多个数据点。
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')
注意最后的标签'Inverse tan'实际上是在图形框之外的(看起来很糟糕-不是发布质量!)
最后,我被告知这在R和LaTeX中是正常的行为,所以我有点困惑为什么这在python中如此困难……有历史原因吗?Matlab在这个问题上同样很差吗?
我在pastebin http://pastebin.com/grVjc007上有这个代码的(只有一点点)长版本