在Mac系统中保存matplotlib图像时无法修改文件名

6
在 Python 中执行 show() 命令后,我只能将图像保存为 figure_1.png ,不能更改文件名。在“另存为”旁边不允许输入任何内容。如何在此时启用输入文件名的功能?抱歉,我需要至少 10 点声望才能发布截图。

1
将您的屏幕截图发布到图像托管服务上,有人会为您将其添加到您的问题中。 - jme
1
你使用的后端是什么? - tacaswell
我有同样的问题。你现在知道任何解决方案吗? - HighwayJohn
@HighwayJohn 仍然不行。每次保存为figure1。 - Ka Wa Yip
糟糕,我用相同的方式做了它.. - HighwayJohn
4个回答

7

我的电脑也出现了同样的问题,我发现解决这个问题的方法是解决matplotlib后端中的一个潜在问题(默认后端“macosx”会导致此问题)。解决方法是更改matplotlibrc文件中的后端行,可以通过运行以下命令找到该文件:

import matplotlib
matplotlib.matplotlib_fname()

在Python终端中,在matplotlibrc文件中找到并更改该行:
backend      : macosx

转换为(例如):

backend      : TkAgg

所有问题都应该解决了。这对我有用,希望对你有帮助。

1

我找到了一个解决方案:

使用 conda install python.app 命令安装 pythonw

然后在终端中使用 pythonw 代替 python

例如:

pythonw my_plot.py

希望这能帮到你。

0

试试这个。我不知道你是否在使用pyplot,但它非常常见。 确保你的代码中没有任何地方显示()图形--这会阻止savefig()函数的工作。这对我有用,并将myfigure.png保存在我运行代码的目录中。

import matplotlib.pyplot as plt

# make a figure with 1 row and 1 column
fig, myplot = plt.subplots( nrows=1, ncols =1)

# simple plot
t = arange(0.0,2.0,0.01)
s = sin(2*pi*t)
myplot = plot(t,s)

# save figure with specified filename
plt.savefig('myfigure.png')

# close figure
plt.close(fig)

谢谢。我知道这个。但是出于某些特定原因,我想在保存之前(手动),先显示图片。 - Ka Wa Yip

0

对于一些人来说,这个讨论可能会解决问题:https://matplotlib.org/faq/osx_framework.html

在没有 Python 框架的情况下,在 OS X 上 matplotlib 无法正常工作。Anaconda 不提供框架构建,因此出现了问题...尽管我不记得最近才出现这个问题!

尽管使用 Python 3,但我实际上无法使链接中建议的虚拟环境修复方法对我起作用。


一个答案应该独立存在。如果你的答案是一个链接,把它作为评论发布。 - klutt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接