这是一个简单的代码,它在与代码相同的目录中生成并保存绘图图像。现在,有没有办法可以将它保存在选择目录中?
import matplotlib
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(range(100))
fig.savefig('graph.png')
答案 0 :(得分:18)
如果您要保存的目录是工作目录的子目录,只需指定文件名前的相对路径:
fig.savefig('Sub Directory/graph.png')
如果您想使用绝对路径,请导入os模块:
import os
my_path = os.path.abspath(__file__) # Figures out the absolute path for you in case your working directory moves around.
...
fig.savefig(my_path + '/Sub Directory/graph.png')
如果您不想担心子目录名称前面的前导斜杠,可以按如下方式智能地连接路径:
import os
my_path = os.path.abspath(__file__) # Figures out the absolute path for you in case your working directory moves around.
my_file = 'graph.png'
...
fig.savefig(os.path.join(my_path, my_file))
答案 1 :(得分:14)
根据docs savefig
接受文件路径,所以您只需要指定完整(或相对)路径而不是文件名。
答案 2 :(得分:4)
除了已经给出的答案,如果你想创建一个新目录,你可以使用这个功能:
def mkdir_p(mypath):
'''Creates a directory. equivalent to using mkdir -p on the command line'''
from errno import EEXIST
from os import makedirs,path
try:
makedirs(mypath)
except OSError as exc: # Python >2.5
if exc.errno == EEXIST and path.isdir(mypath):
pass
else: raise
然后:
import matplotlib
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(range(100))
# Create new directory
output_dir = "some/new/directory"
mkdir_p(output_dir)
fig.savefig('{}/graph.png'.format(output_dir))
答案 3 :(得分:2)
以下是使用带有Sublime Text 2编辑器的Python 2.7.10版保存到目录(外部USB驱动器)的简单示例:
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(-np.pi, np.pi, 256, endpoint = True)
C, S = np.cos(X), np.sin(X)
plt.plot(X, C, color = "blue", linewidth = 1.0, linestyle = "-")
plt.plot(X, S, color = "red", linewidth = 1.0, linestyle = "-")
plt.savefig("/Volumes/seagate/temp_swap/sin_cos_2.png", dpi = 72)
答案 4 :(得分:1)
这是将绘图保存到所选目录的代码段。如果该目录不存在,则会创建该目录。
import os
import matplotlib.pyplot as plt
script_dir = os.path.dirname(__file__)
results_dir = os.path.join(script_dir, 'Results/')
sample_file_name = "sample"
if not os.path.isdir(results_dir):
os.makedirs(results_dir)
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.savefig(results_dir + sample_file_name)
答案 5 :(得分:1)
执行此操作的最简单方法如下:
save_results_to = '/Users/S/Desktop/Results/'
plt.savefig(save_results_to + 'image.png', dpi = 300)
图像将保存在save_results_to
目录中,名称为image.png
答案 6 :(得分:0)
您只需要将文件路径(目录)放在图像名称之前。示例:
fig.savefig('/home/user/Documents/graph.png')
其他示例:
fig.savefig('/home/user/Downloads/MyImage.png')
答案 7 :(得分:0)
您可以使用以下代码
name ='mypic'
plt.savefig('path_to_file/{}'.format(name))
如果要保存在代码所在的文件夹中,请忽略path_to_file并仅使用名称进行格式化。 如果您的文件夹名称'Images'在python脚本之外仅一层,则可以使用
name ='mypic'
plt.savefig('Images/{}'.format(name))
保存时的默认文件类型为'。png'文件格式。 如果要保存循环,则可以为每个文件使用唯一的名称,例如for循环的计数器。如果我是柜台,
plt.savefig('Images/{}'.format(i))
希望这会有所帮助。
答案 8 :(得分:-1)
您应该能够指定您选择的目的地的整个路径。例如:
plt.savefig('E:\New Folder\Name of the graph.jpg')