首页 >后端开发 >Python教程 >如何在 Matplotlib 中扩展图形框以容纳轴外的图例?

如何在 Matplotlib 中扩展图形框以容纳轴外的图例?

Barbara Streisand
Barbara Streisand原创
2024-10-18 12:18:30485浏览

How to Expand Figure Box to Accommodate Legends Outside the Axis in Matplotlib?

扩展轴外图例的图形框

将图例移到轴外通常会导致图形框太小而无法容纳传说的大小。缩小轴并不理想,因为它会减小绘图大小,从而更难以解释复杂的数据。

动态调整图形框大小

要解决此问题,可以动态调整图形框的大小以适合图例。这可以通过使用以下参数修改 savefig() 调用来实现:

  1. bbox_extra_artists 以包含超出轴的其他艺术家,例如图例。
  2. bbox_inches='tight ' 调整图形大小以适合其中的所有元素。

代码示例

考虑以下代码:

<code class="python">import matplotlib.pyplot as plt
import numpy as np

# Construct a plot with a legend
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')

# Save the figure with the adjusted bounding box
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>

输出

此代码将创建一个在轴外带有图例的图,并且图形框将扩展以容纳图例。还可以在 bbox_extra_artists 参数中包含其他艺术家,例如文本标签。

简化的命令

在 Matplotlib 的最新版本中,该命令已被简化。要保存具有紧密边界框的图形,只需要以下参数:

<code class="python">plt.savefig('x.png', bbox_inches='tight')</code>

以上是如何在 Matplotlib 中扩展图形框以容纳轴外的图例?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn