如何根据文件夹名称命名图例中的图形

我已经为目录内的不同子文件夹绘制了一个图表,我想根据文件夹的名称为每个图表添加一个图例。我的意思是,情节图例是根据文件夹的名称编写的。绘图代码如下:


from __future__ import division

import sys

import os

import numpy as np

import matplotlib.pyplot as plt

import glob

import seaborn as sns

from scipy import stats

from scipy.stats.kde import gaussian_kde



root = 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)


守着星空守着你
浏览 86回答 1
1回答

倚天杖

据我了解,您有不同的图表,对于每个图表,您都需要基于当前文件夹的不同图例。label=directory您可以通过添加plot 方法来设置图例。如果您不想要完整目录,也许您应该首先提取当前文件夹(使用拆分或不同的方法)。这取决于您的目录变量。考虑以下示例:import matplotlib.pyplot as pltimport pandas as pdlegend1 = ["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列表设置的。你可以把它作为你的目录。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python