我已经为目录内的不同子文件夹绘制了一个图表,我想根据文件夹的名称为每个图表添加一个图例。我的意思是,情节图例是根据文件夹的名称编写的。绘图代码如下:from __future__ import divisionimport sysimport osimport numpy as npimport matplotlib.pyplot as pltimport globimport seaborn as snsfrom scipy import statsfrom scipy.stats.kde import gaussian_kderoot = r'C:\Users\Hasan\Desktop\output\new our scenario\beta 15\test'mean_cu=[]my_list = os.listdir(root)my_list = [file for file in my_list if os.path.isdir(os.path.join(root, file))]for directory in my_list: CASES = [file for file in os.listdir(os.path.join(root, directory)) if file.startswith('config')] if len(CASES)==0: continue maxnum = np.max([int(os.path.splitext(f)[0].split('_')[1]) for f in CASES]) CASES = ['configuration_%d.out' % i for i in range(maxnum)] mean_cu=[] for i, d in enumerate(CASES): a = np.loadtxt(os.path.join(root, directory,d)).T num = os.path.splitext(d)[0] local_cu = np.abs(a[4]) mean_curv.append(np.mean(local_cu)) pdf = stats.norm.pdf(mean_cu) Time = np.arange(0,len(pdf)) plt.plot(Time,pdf)
1 回答
倚天杖
TA贡献1828条经验 获得超3个赞
据我了解,您有不同的图表,对于每个图表,您都需要基于当前文件夹的不同图例。label=directory您可以通过添加plot 方法来设置图例。如果您不想要完整目录,也许您应该首先提取当前文件夹(使用拆分或不同的方法)。这取决于您的目录变量。
考虑以下示例:
import matplotlib.pyplot as plt
import pandas as pd
legend1 = ["1", "2"]
df = pd.DataFrame({"A":[4,5], "B":[6,7]})
for item in legend1:
fig, ax = plt.subplots()
ax.plot(df["A"], df["B"], label=item)
ax.legend(loc='upper left', frameon=False)
将产生以下两个图表:
如您所见,唯一不同的是图例,它是由legend1
列表设置的。你可以把它作为你的目录。
添加回答
举报
0/150
提交
取消