plt.savefig()用输入文件名命名保存图片
时间: 2024-06-18 11:05:17 浏览: 389
在使用 `plt.savefig()` 函数时,你可以通过指定文件名的方式来保存图片。例如,你可以使用以下代码将当前绘图保存为一个名为 `my_plot.png` 的 PNG 格式图片:
```python
import matplotlib.pyplot as plt
# 绘图代码
...
# 将绘图保存为 PNG 格式图片
plt.savefig('my_plot.png')
```
在这个例子中,`'my_plot.png'` 是你要保存的文件名。如果你想要指定文件保存的路径,你可以在文件名前面添加路径名称。例如,如果你想要将图片保存到 `/Users/myuser/Documents/` 目录下,你可以这样写:
```python
plt.savefig('/Users/myuser/Documents/my_plot.png')
```
这将会把图片保存到指定路径下,并以 `my_plot.png` 为文件名。
相关问题
在循环中使用plt.savefig保存多张图片使得命名不同
在Python中,如果你想要在一个循环中生成并保存多张图片,并且希望每张图都有不同的名称,你可以结合`matplotlib`库中的`savefig`函数以及字符串格式化来实现。假设你想基于一个序列(如列表、元组或迭代器)生成图片,并给它们命名为`image_0.png`, `image_1.png`, 等等,你可以这样做:
```python
import matplotlib.pyplot as plt
# 假设你有一个数据列表,比如图像索引和对应的生成数据
image_names = ['image_{:02d}.png'.format(i) for i in range(num_images)]
for index, image_name in enumerate(image_names):
# 在这里对数据进行绘图操作
data = ... # 生成你的数据
plt.figure() # 创建一个新的图形
plt.plot(data)
# 保存图片到文件
plt.savefig(image_name)
```
在这个例子中,`'{:02d}'`是一个格式化字符串,`{:02d}`表示最少填充两位数字,`i`会被替换为其整数值,从而得到像`image_00.png`, `image_01.png`, etc. 的文件名。
plot_size = 730 plt.figure(figsize=(12, 8)) plt.plot(scaler.inverse_transform((model(x_train_tensor).detach().numpy()[: plot_size]).reshape(-1, 1)), "b") plt.plot(scaler.inverse_transform(y_train_tensor.detach().numpy().reshape(-1, 1)[: plot_size]), "r") plt.legend() plt.show() y_test_pred = model(x_test_tensor) plt.figure(figsize=(12, 8)) plt.plot(scaler.inverse_transform(y_test_pred.detach().numpy()[: plot_size]), "b") plt.plot(scaler.inverse_transform(y_test_tensor.detach().numpy().reshape(-1, 1)[: plot_size]), "r") plt.legend() plt.show()这段代码后加上图片保存到文件夹A中,且图片分别以数据路径的文件名,文件名1、文件名2命名
可以在代码中添加如下代码,实现保存图片到文件夹A中,并分别以数据路径的文件名、文件名1、文件名2命名:
```
# 获取数据路径的文件名
file_name = os.path.basename(config.data_path)
# 保存训练集预测结果图片
plt.figure(figsize=(12, 8))
plt.plot(scaler.inverse_transform((model(x_train_tensor).detach().numpy()[: plot_size]).reshape(-1, 1)), "b")
plt.plot(scaler.inverse_transform(y_train_tensor.detach().numpy().reshape(-1, 1)[: plot_size]), "r")
plt.legend()
plt.savefig(f'./A/{file_name}_文件名1.png')
# 保存测试集预测结果图片
y_test_pred = model(x_test_tensor)
plt.figure(figsize=(12, 8))
plt.plot(scaler.inverse_transform(y_test_pred.detach().numpy()[: plot_size]), "b")
plt.plot(scaler.inverse_transform(y_test_tensor.detach().numpy().reshape(-1, 1)[: plot_size]), "r")
plt.legend()
plt.savefig(f'./A/{file_name}_文件名2.png')
```
其中,`os.path.basename()`函数可以获取数据路径中的文件名。在保存图片时,使用f-string将文件名和后缀拼接成完整的文件名。例如,如果数据路径为`'C:/Users/ASUS/Desktop/F4/常州道旅好/常州公路运输集团有限公司(常320401000352).csv'`,则保存的文件名为`'常州公路运输集团有限公司(常320401000352).csv_文件名1.png'`和`'常州公路运输集团有限公司(常320401000352).csv_文件名2.png'`。需要注意的是,如果数据路径中包含特殊字符,如括号、斜杠等,需要对文件名进行处理,以避免出现路径错误等问题。
阅读全文