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