首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python mathplotlib savefig FileNotFoundError

python mathplotlib savefig FileNotFoundError
EN

Stack Overflow用户
提问于 2019-05-07 05:25:53
回答 2查看 2.6K关注 0票数 3

我已经使用matplotlib制作了一个图形,现在我正尝试使用matplotlib.pyplot.savefig将其保存到文件中

代码语言:javascript
复制
import matplotlib.pyplot as plt

# . . .

plt.savefig("/home/username/PycharmProjects/sandbox/images/result.png")

目录"/home/username/PycharmProjects/sandbox/images/“存在,但不幸的是它在plt.savefig调用时发生在FileNotFoundError。

有没有人知道,这个问题怎么解决?

EN

回答 2

Stack Overflow用户

发布于 2021-09-30 19:53:33

在我的例子中,问题出在领先的/上。因此,下面的代码应该可以工作:

代码语言:javascript
复制
plt.savefig("home/username/PycharmProjects/sandbox/images/result.png")
票数 0
EN

Stack Overflow用户

发布于 2021-11-22 16:37:04

大多数与保存文件和绘图相关的错误都可以通过以下方式防止

  • 绘制图形,
  • 在不将其硬编码为字符串的情况下构建保存目录的路径,
  • 保存绘图。

独立于您的操作系统,您可以获取python脚本正在运行的当前目录,并且可以在该目录中保存文件,也可以在此位置创建子文件夹来保存文件。下面将使用os library描述这两种实现。

导入所需的库

代码语言:javascript
复制
import os
import matplotlib.pyplot as plt

绘制图表

代码语言:javascript
复制
X = [_ for _ in range(100)]
plt.plot(X)
plt.title('A plot of 1st 100 numbers')

获取当前工作目录路径

代码语言:javascript
复制
current_directory_path = os.getcwd()
file_name = 'result.png'

此命令获取当前目录的路径,您将从中运行python脚本。不需要自己硬编码路径,这在大多数情况下可能会导致错误,如果您忘记为您的操作系统转义特殊字符或适当的斜杠。

构建要保存在当前工作目录中的file_path

代码语言:javascript
复制
file_path = os.path.join(current_directory_path, file_name)

在windows中,你会看到像c:\\Users\\...\\result.png这样的东西。这在linux中可能有所不同。

构建file_path以将绘图保存在子文件夹中

代码语言:javascript
复制
subfolder_path = os.path.join(current_directory_path, 'subfolder')

if not os.path.exists(subfolder_path):
    os.makedirs(subfolder_path)

file_path = os.path.join(subfolder_path, file_name)

上述检查‘子文件夹’目录是否存在于当前目录中,如果不存在,则创建它。在windows中,您会看到类似于c:\\Users\\...\\subfolder\\result.png'的代码

保存绘图

代码语言:javascript
复制
plt.savefig(file_path)

最后,文件被保存到指定的file_path中,没有错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56012636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档