首页 > 解决方案 > Python 多文件图,每个图都有图例

问题描述

我正在尝试从文件夹中提取数据并将每个数据绘制到带有图例的单独图形或子图中,这是我尝试过的代码

`import os import glob import matplotlib.pyplot as plt import numpy as np

for fname in os.listdir(os.getcwd()): if fname.endswith('.dat'): with open(fname) as infile: z = np.loadtxt(infile) x,y = z[:,0 ],z[:,1] plt.plot(x, y, linewidth=1) plt.xlabel('X',fontsize=16,fontweight="bold") plt.ylabel('Y',fontsize=16, fontweight="bold") plt.savefig(fname+'.pdf')`

该代码基本上生成多个图表,所有数据都在一个图表中。我不知道为什么在这里输入图像描述

其次,我尝试使用字符串切片在图表内给出一个标签,我能够提取字符串,但是在将它用于图例时,最终作为单个字母不成功,这是该脚本

for filename in os.listdir(os.getcwd()):
if filename.endswith('.dat'):
        with open(filename) as infile:
            d = str(infile)
            lbl1 = d[32:38]
            lbl2 = d[58:64]
            lbl = str(lbl1) + '/' + str(lbl2)
            print(lbl)
            data = np.loadtxt(infile)
            X = data[:,0]
            Y = data[:,1]
            plt.plot(X, Y, label=lbl)
            plt.savefig(fname+'.pdf')
            plt.legend(iter(lineObjects), lbl)  

总而言之,我有两个问题,一个是将多个文件绘制成具有适当图例的多个图表。我交叉检查了循环,它正确地单独调用了每个文件,但是为什么将所有内容绘制在一起很棘手。

如果有人可以帮助将所有图表的子图合二为一,那也很好。

在此处输入链接描述

标签: pythonfileplotlegendsubplot

解决方案


推荐阅读