当前位置: 首页 > 知识库问答 >
问题:

从savefig()上的matplotlib图中剪切的文本或图例

鲜于仰岳
2023-03-14

假设我想画一个非常简单的图,其中2个子图水平排列,我想在第二个子图的右边添加一些文本。我在Jupyter笔记本电脑上工作,但这不会改变任何事情:

import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(8, 3))

ax1 = plt.subplot(121)
ax1.plot(x,y1)

ax2 = plt.subplot(122)
ax2.plot(x,y2)
ax2.text(1.05,0.7, 'Some text here', horizontalalignment='left', transform=ax2.transAxes)

但是,当我试图导出图形时,右边的文本会被剪切:

plt.savefig(r'C:\mypy\test_graph.png', ext='png');

使用plt。此处建议的tightlayout(),会使问题变得更糟。

我怎样才能最好地解决这个问题?

共有2个答案

夹谷琨
2023-03-14

添加bbox_inches="紧"到保存图**kwargs将执行此操作:

plt.savefig(r'C:\mypy\test_graph.png', ext='png', bbox_inches="tight")  
查宜修
2023-03-14

Jupyter笔记本默认配置为使用其“内联”后端(%matplotlib inline)。它显示已保存的图形png版本。在保存过程中,使用选项bbox\u inches=“tight”

为了复制您在jupyter输出中看到的图形,您还需要使用此选项。

plt.savefig("output.png", bbox_inches="tight")

此命令的作用是扩展或缩小已保存图形的区域,以包括其中的所有美工人员。

或者,您可以缩小图形的内容,以便有足够的空间将文本放入原始图形中。

这可以通过以下方式完成:。

plt.subplots_adjust(right=0.7)

这意味着最右边的轴停止在图形宽度的70%。

 类似资料:
  • 问题内容: 阅读以下文章,我设法将图例放在情节之外。 如何将图例排除在情节之外 码: 显示正确的绘图,并在其外部带有图例。但是,当我使用将文件另存为文件时,图例将被截断。 一些谷歌搜索显示了变通方法,例如add或to ,但都没有用。 正确的方法是什么?Matplotlib版本是0.99.3。 谢谢。 问题答案: 问题是,当您动态绘图时,会自动确定边框以适合所有对象。保存文件时,操作不会自动完成,因

  • 假设我创造了一个情节: 使用Ipython(通过Spyder)时,绘图显示ok。但是,当我查看保存的图像时,它显示如下: 如您所见,文本被截断。处理此问题的建议做法是什么? 我通过增加体形尺寸,然后重新调整尺寸来解决这个问题。然而,我的目标是生成一组文本大小一致的图像(图形大小不同);因此,这种方法并不理想。 笔记虽然存在类似的问题,但该问题的不同之处在于: 处理和

  • 问题内容: 我正在尝试保存使用matplotlib创建的图;但是,图像保存为空白。 这是我的代码: tessstttyyy.png为空白(也尝试使用.jpg) 问题答案: 首先,什么时候发生?我会测试一下,然后再调整传递给的值;可以尝试输入值131、132和133,或者取决于是否存在的值。 其次,在调用之后,创建一个新图形。为了解决这个问题,您可以 致电之前致电 通过调用“获取当前图形”来保存图形

  • 我正在使用一个创建的多行图,该图具有这样一个延伸到图形边界之外的外部图例。 我的: 不幸的是,在使用和命令下载图形时,图例从导出的图像中被切掉。 使用此Colab Link(在最后一个单元格中),您可以更清楚地看到问题。 请提出解决方案。

  • 我想绘制这些数据: 我用 但是x标签被剪掉了: 我讨论了这个问题,X轴标签从Graph-PythonMatplotlib中被切断,我尝试使用和但它没有帮助。你能帮我吗?

  • 我有下面的代码 但是奇怪的是,当我在浏览器上打开控制台,然后尝试它完美地生成图像,然后我甚至关闭了控制台,图像正在正确地生成