savefig png 其文件名与 excel sheet for 循环完全相同
savefig png where its file name is exactly the same as the excel sheet for loop
我有一个包含两个 sheet 的 excel(下面的屏幕截图)文件,并尝试使用 for in 循环绘制每个 sheet 的数据。我已经使用下面的代码成功地从这两个 sheet 中创建了两个图。
问题是我还想自动将绘图保存到不同的 png 文件中,其中每个 png 文件名与 excel 中的 sheet 名称完全相同。我得到的 png 文件名是 '83' 和 '95' 而不是 'E1' 也不是 'E4.屏幕截图如下。
'
在savefig之前还有两个for in循环用于标注。这两个循环变量需要改吗?
提前致谢
import pandas as pd
import matplotlib.pyplot as plt
path ='F:\Backup\JN\TOR\TOR HLS.xlsx'
data= pd.ExcelFile(path)
sheets = data.sheet_names
for i in sheets:
well=pd.read_excel(data, sheet_name=i)
plt.plot(well['T'], well['mdpl pt'], marker='o', color='blue')
plt.plot(well['P'], well['mdpl pt'], marker='o', color='red')
for i, txt in enumerate(well['csg']):
plt.annotate(txt, ((well['x csg']+5)[i], well['mdpl csg'][i]))
for i, txt in enumerate(well['liner']):
plt.annotate(txt, ((well['x liner']+5)[i], well['mdpl liner'][i]))
plt.savefig(str(i), dpi=300, transparent='True')
plt.close(i)
我按照您的代码尝试了一个片段,它对我来说效果很好,它创建了 2 个图像,名称为 E3
和 E4
,因为我的 sheet 名称是 E3 和 E4。我也附上了我的 excel 数据作为输出。请也检查一下
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
path ='HLS.xlsx'
data= pd.ExcelFile(path)
sheets = data.sheet_names
print(sheets)
#['E3', 'E4']
for i in sheets:
well=pd.read_excel(data, sheet_name=i)
print(well)
plt.plot(well['A'], well['B'], color='blue')
plt.savefig(i)
plt.close(i)
#well
#E3 first #E4 second
""" A B
0 1 6
1 2 5
2 3 4
3 4 3
4 5 2
5 6 1
A B
0 6 1
1 5 2
2 4 3
3 3 4
4 2 5
5 1 6"""
我有一个包含两个 sheet 的 excel(下面的屏幕截图)文件,并尝试使用 for in 循环绘制每个 sheet 的数据。我已经使用下面的代码成功地从这两个 sheet 中创建了两个图。
问题是我还想自动将绘图保存到不同的 png 文件中,其中每个 png 文件名与 excel 中的 sheet 名称完全相同。我得到的 png 文件名是 '83' 和 '95' 而不是 'E1' 也不是 'E4.屏幕截图如下。
在savefig之前还有两个for in循环用于标注。这两个循环变量需要改吗?
提前致谢
import pandas as pd
import matplotlib.pyplot as plt
path ='F:\Backup\JN\TOR\TOR HLS.xlsx'
data= pd.ExcelFile(path)
sheets = data.sheet_names
for i in sheets:
well=pd.read_excel(data, sheet_name=i)
plt.plot(well['T'], well['mdpl pt'], marker='o', color='blue')
plt.plot(well['P'], well['mdpl pt'], marker='o', color='red')
for i, txt in enumerate(well['csg']):
plt.annotate(txt, ((well['x csg']+5)[i], well['mdpl csg'][i]))
for i, txt in enumerate(well['liner']):
plt.annotate(txt, ((well['x liner']+5)[i], well['mdpl liner'][i]))
plt.savefig(str(i), dpi=300, transparent='True')
plt.close(i)
我按照您的代码尝试了一个片段,它对我来说效果很好,它创建了 2 个图像,名称为 E3
和 E4
,因为我的 sheet 名称是 E3 和 E4。我也附上了我的 excel 数据作为输出。请也检查一下
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
path ='HLS.xlsx'
data= pd.ExcelFile(path)
sheets = data.sheet_names
print(sheets)
#['E3', 'E4']
for i in sheets:
well=pd.read_excel(data, sheet_name=i)
print(well)
plt.plot(well['A'], well['B'], color='blue')
plt.savefig(i)
plt.close(i)
#well
#E3 first #E4 second
""" A B
0 1 6
1 2 5
2 3 4
3 4 3
4 5 2
5 6 1
A B
0 6 1
1 5 2
2 4 3
3 3 4
4 2 5
5 1 6"""