savefig png,其文件名与用于循环的excel工作表完全相同

如何解决savefig png,其文件名与用于循环的excel工作表完全相同

我有一个包含两张纸的excel(下图为屏幕快照)文件,并尝试使用for in loop绘制每张纸的数据。我已经使用下面的代码成功地从这两张纸上创建了两个图。

enter image description here

问题是我还想将图自动保存到不同的png文件中,其中每个png文件名与excel中的图纸名称完全相同。我得到的png文件名是“ 83”和“ 95”,而不是“ E1”或“ E4”。屏幕截图如下。

enter image description here

'

在savefig之前,还有两个for循环用于批注。这两个循环变量是否需要更改?

先谢谢您

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'],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)

解决方法

我在您的代码之后尝试了一个代码段,它对我来说效果很好,并且它创建了两个图像,名称分别为E3E4,因为我的工作表名称分别为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"""

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?