# 循环调用绘图函数 for i in range(1, 15): filename = f'E:/应统案例大赛/附件1-股票交易数据/a{i}.xlsx' # 根据数据文件名字生成文件路径 df = pd.read_excel(filename) # 读取数据 plot_k_line(df) # 绘制K线图 plt.savefig(f'a{i}.jpg') # 保存图表 plt.show() # 显示图表为什么保存不了
时间: 2024-02-21 18:02:17 浏览: 10
根据你提供的代码,你是将每个股票的 K 线图绘制出来,并保存为对应的文件名。但是你在保存图表时使用了一个相对路径 'a{i}.jpg',这可能导致保存失败,因为 Python 解释器可能无法找到该路径。建议你使用绝对路径来保存文件,例如:
```
plt.savefig('E:/应统案例大赛/附件1-股票交易数据/a{i}.jpg')
```
这将确保文件保存在指定的路径下。如果你仍然遇到问题,请检查文件路径是否正确,以及是否有权限在该路径下保存文件。
相关问题
# 循环调用绘图函数 for i in range(1, 15): filename = f'E:/应统案例大赛/附件1-股票交易数据/a{i}.xlsx' # 根据数据文件名字生成文件路径 df = pd.read_excel(filename) # 读取数据 plot_k_line(df) # 绘制K线图 plt.savefig('E:/应统案例大赛/附件1-股票交易数据/a{i}.jpg') plt.show() # 显示图表 为什么只保存了一个图片
你的代码中使用了 f-string 来构造文件名,但是你在调用 `plt.savefig()` 函数时,文件名中的 f-string 没有被正确地格式化,因为你使用了单引号字符串而不是 f-string。你可以将单引号替换为双引号来解决这个问题,例如:
```
plt.savefig(f"E:/应统案例大赛/附件1-股票交易数据/a{i}.jpg")
```
这将确保文件名中的 f-string 被正确地格式化。如果你仍然只保存了一个图片,可能是由于你的代码中存在其他问题。你可以在循环中打印出每个数据框的名称和保存的文件名,以便进行调试。例如:
```
for i in range(1, 15):
filename = f'E:/应统案例大赛/附件1-股票交易数据/a{i}.xlsx'
df = pd.read_excel(filename)
print(f"Processing file {filename}...")
plot_k_line(df)
plt.savefig(f'E:/应统案例大赛/附件1-股票交易数据/a{i}.jpg')
plt.show()
```
这将在每次循环中打印出正在处理的文件名,以便你查看是否正确地处理了所有文件。
for i in range(1, 15): filename = 'E:/应统案例大赛/附件1-股票交易数据/a{}.xlsx'.format(i) df = pd.read_excel(filename) df_desc = df.describe() sheet_name = 'a{}'.format(i+1) df_desc.to_excel('E:/应统案例大赛/附件1-股票交易数据/miaoshu{}.xlsx', sheet_name=sheet_name) 修改代码,使每个描述统计分别进入一个sheet
你可以在 `df_desc.to_excel()` 方法中指定 `sheet_name` 参数,来指定每个描述统计分别进入一个sheet。下面是修改后的代码:
```python
import pandas as pd
for i in range(1, 15):
filename = 'E:/应统案例大赛/附件1-股票交易数据/a{}.xlsx'.format(i)
df = pd.read_excel(filename)
df_desc = df.describe()
sheet_name = 'a{}'.format(i+1)
writer = pd.ExcelWriter('E:/应统案例大赛/附件1-股票交易数据/miaoshu{}.xlsx'.format(i))
df_desc.to_excel(writer, sheet_name=sheet_name)
writer.save()
```
这里使用了 `pd.ExcelWriter()` 方法创建一个 ExcelWriter 对象,然后在 `df_desc.to_excel()` 方法中指定这个对象和 `sheet_name` 参数,最后调用 `writer.save()` 方法保存文件。这样每个描述统计就会分别进入一个 sheet 中。