aiops/ContraLSP/mortalty/deal_results.py [102:156]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
areas = [float(area) for area in [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]]
metrics_array = np.zeros((len(explainer_list), len(areas), 4,  CV))
for cv in range(CV):
    for e, explainer in enumerate(explainer_list):
        for a, area in enumerate(areas):
            metrics_array[e, a, 0, cv] = data[data.Fold==cv][data.Topk==area][data.Explainer==explainer][data.Baseline==baseline].Accuracy.values[0]
            metrics_array[e, a, 1,  cv] = data[data.Fold==cv][data.Topk==area][data.Explainer==explainer][data.Baseline==baseline]['Cross Entropy'].values[0]
            metrics_array[e, a, 2, cv] = data[data.Fold==cv][data.Topk==area][data.Explainer==explainer][data.Baseline==baseline]['Sufficiency'].values[0]
            metrics_array[e, a, 3, cv] = data[data.Fold==cv][data.Topk==area][data.Explainer==explainer][data.Baseline==baseline].Comprehensiveness.values[0]


fig, axes = plt.subplots(1, 4, figsize=(19, 4))

# Plot the CE and the ACC for each attribution method and each mask area
for k, name in enumerate(explainer_list):
    # plt.figure(1)
    axes[0].plot(areas, metrics_array[k, :, 0, :].mean(axis=-1), label=name)
    axes[0].fill_between(
        areas,
        metrics_array[k, :, 0, :].mean(axis=-1) - metrics_array[k, :, 0, :].std(axis=-1),
        metrics_array[k, :, 0, :].mean(axis=-1) + metrics_array[k, :, 0, :].std(axis=-1),
        alpha=0.1,
    )
    # plt.figure(2)
    axes[1].plot(areas, metrics_array[k, :, 1, :].mean(axis=-1), label=name)
    axes[1].fill_between(
        areas,
        metrics_array[k, :, 1, :].mean(axis=-1) - metrics_array[k, :, 1, :].std(axis=-1),
        metrics_array[k, :, 1, :].mean(axis=-1) + metrics_array[k, :, 1, :].std(axis=-1),
        alpha=0.1,
    )
    # plt.figure(3)
    axes[2].plot(areas, metrics_array[k, :, 2, :].mean(axis=-1), label=name)
    axes[2].fill_between(
        areas,
        metrics_array[k, :, 2, :].mean(axis=-1) - metrics_array[k, :, 2, :].std(axis=-1),
        metrics_array[k, :, 2, :].mean(axis=-1) + metrics_array[k, :, 2, :].std(axis=-1),
        alpha=0.1,
    )
    # plt.figure(4)
    axes[3].plot(areas, metrics_array[k, :, 3, :].mean(axis=-1), label=name)
    axes[3].fill_between(
        areas,
        metrics_array[k, :, 3, :].mean(axis=-1) - metrics_array[k, :, 3, :].std(axis=-1),
        metrics_array[k, :, 3, :].mean(axis=-1) + metrics_array[k, :, 3, :].std(axis=-1),
        alpha=0.1,
    )
# plt.figure(1)
axes[0].set_ylabel("Accuracy", fontsize=18)
axes[1].set_ylabel("Cross Entropy", fontsize=18)
axes[2].set_ylabel("Sufficiency", fontsize=18)
axes[3].set_ylabel("Comprehensiveness", fontsize=18)

for i in range(4):
    axes[i].set_xlim(0.1, 0.6)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



aiops/ContraLSP/mortalty/deal_results.py [195:248]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
areas = [float(area) for area in [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]]
metrics_array = np.zeros((len(explainer_list), len(areas), 4,  CV))
for cv in range(CV):
    for e, explainer in enumerate(explainer_list):
        for a, area in enumerate(areas):
            metrics_array[e, a, 0, cv] = data[data.Fold==cv][data.Topk==area][data.Explainer==explainer][data.Baseline==baseline].Accuracy.values[0]
            metrics_array[e, a, 1,  cv] = data[data.Fold==cv][data.Topk==area][data.Explainer==explainer][data.Baseline==baseline]['Cross Entropy'].values[0]
            metrics_array[e, a, 2, cv] = data[data.Fold==cv][data.Topk==area][data.Explainer==explainer][data.Baseline==baseline]['Sufficiency'].values[0]
            metrics_array[e, a, 3, cv] = data[data.Fold==cv][data.Topk==area][data.Explainer==explainer][data.Baseline==baseline].Comprehensiveness.values[0]


fig, axes = plt.subplots(1, 4, figsize=(19, 4))
# Plot the CE and the ACC for each attribution method and each mask area
for k, name in enumerate(explainer_list):
    # plt.figure(1)
    axes[0].plot(areas, metrics_array[k, :, 0, :].mean(axis=-1), label=name)
    axes[0].fill_between(
        areas,
        metrics_array[k, :, 0, :].mean(axis=-1) - metrics_array[k, :, 0, :].std(axis=-1),
        metrics_array[k, :, 0, :].mean(axis=-1) + metrics_array[k, :, 0, :].std(axis=-1),
        alpha=0.1,
    )
    # plt.figure(2)
    axes[1].plot(areas, metrics_array[k, :, 1, :].mean(axis=-1), label=name)
    axes[1].fill_between(
        areas,
        metrics_array[k, :, 1, :].mean(axis=-1) - metrics_array[k, :, 1, :].std(axis=-1),
        metrics_array[k, :, 1, :].mean(axis=-1) + metrics_array[k, :, 1, :].std(axis=-1),
        alpha=0.1,
    )
    # plt.figure(3)
    axes[2].plot(areas, metrics_array[k, :, 2, :].mean(axis=-1), label=name)
    axes[2].fill_between(
        areas,
        metrics_array[k, :, 2, :].mean(axis=-1) - metrics_array[k, :, 2, :].std(axis=-1),
        metrics_array[k, :, 2, :].mean(axis=-1) + metrics_array[k, :, 2, :].std(axis=-1),
        alpha=0.1,
    )
    # plt.figure(4)
    axes[3].plot(areas, metrics_array[k, :, 3, :].mean(axis=-1), label=name)
    axes[3].fill_between(
        areas,
        metrics_array[k, :, 3, :].mean(axis=-1) - metrics_array[k, :, 3, :].std(axis=-1),
        metrics_array[k, :, 3, :].mean(axis=-1) + metrics_array[k, :, 3, :].std(axis=-1),
        alpha=0.1,
    )
# plt.figure(1)
axes[0].set_ylabel("Accuracy", fontsize=18)
axes[1].set_ylabel("Cross Entropy", fontsize=18)
axes[2].set_ylabel("Sufficiency", fontsize=18)
axes[3].set_ylabel("Comprehensiveness", fontsize=18)

for i in range(4):
    axes[i].set_xlim(0.1, 0.6)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



