Python 调整matplotlib图表的大小,使图表的大小始终保持一致,即使在标签长度变化很大的情况下也是如此

Python 调整matplotlib图表的大小,使图表的大小始终保持一致,即使在标签长度变化很大的情况下也是如此,python,matplotlib,svg,Python,Matplotlib,Svg,我的matplotlib图表输出遇到了一个问题,我将其导出为SVG文本(使用fig.savefig()并在web应用程序中作为服务器端渲染分析进行渲染) 其中一个图表是水平条形图——如下图所示,其细节令人惊叹- _______________________ item1_name |---- | item2_name |-------- | something

我的matplotlib图表输出遇到了一个问题,我将其导出为SVG文本(使用
fig.savefig()
并在web应用程序中作为服务器端渲染分析进行渲染)

其中一个图表是水平条形图——如下图所示,其细节令人惊叹-

                  _______________________
       item1_name |----                 |
       item2_name |--------             |
        something |----------           |
thing thing thing |-------------        |
      other thing |---------------------|
                  ---1---2---3---4---5---
                        some metric       
我的问题是,当这些标签很大时,它们会引起麻烦

使用
图紧密布局()时

打印渲染为法线,但X轴标签在左侧被切断(奇怪的是,在某些情况下,打印实际上似乎渲染得比法线大)

使用
rcParams.update({'figure.autolayout':True})时

名称以完整的形式呈现,但打印会被挤压以留出空间

我希望使绘图始终保持完全相同的大小而不考虑x轴的比例、y标签的长度-同时永远不要剪切左侧的标签

有没有一种mpl方便的方法可以在不失真/中断的情况下呈现整个图表和标签?我相信
紧密布局()
应该可以做到这一点,但只适用于XLabel

如果没有,是否有一种方法可以获得ylabel所需的大小,然后我可以将其与
图一起使用。set_size_inches()
,如下所示:

label_inches_needed = get_label_size(axes)
plot_consistent_height = 4
plot_consistent_width = 10
fig.set_size_inches(plot_consistent_width + label_inches_needed, plot_consistent_height)
谢谢你的建议,谢谢你看我的图表

参考文献-

为了确保标签不会被剪掉,请在保存时尝试使用选项bbox。我无法验证您的情况,因为您没有为您的身材提供代码,但这通常可以解决问题

plt.savefig(figname, bbox_inches = "tight")

若要确保标签未被剪切,请在保存时尝试使用选项bbox。我无法验证您的情况,因为您没有为您的图形提供代码,但这通常会起作用

plt.savefig(figname, bbox_inches = "tight")

谢谢,这产生了预期的结果谢谢,这产生了预期的结果
plt.savefig(figname, bbox_inches = "tight")