Здравствуйте, я пытаюсь построить диаграмму производительности в python, используя скрипт, доступный на GitHub https://gist.github.com/djgagne/64516e3ea268ec31fb34#file -performance_diagram-py от djgagne.
Но я не могу правильно построить график? Кто-нибудь может мне помочь?
Здесь код диаграммы производительности графика
import matplotlib.pyplot as plt
import numpy as np
from DistributedROC import DistributedROC
def performance_diagram(roc_objs, obj_labels, colors, markers, filename, figsize=(9, 8), xlabel="Success Ratio (1-FAR)",
ylabel="Probability of Detection", ticks=np.arange(0, 1.1, 0.1), dpi=300, csi_cmap="Blues",
csi_label="Critical Success Index", title="Performance Diagram",
legend_params=dict(loc=4, fontsize=12, framealpha=1, frameon=True)):
"""
Draws a performance diagram from a set of DistributedROC objects.
:param roc_objs: list or array of DistributedROC Objects.
:param obj_labels: list or array of labels describing each DistributedROC object.
:param colors: list of color strings
:param markers: list of markers.
:param filename: output filename.
:param figsize: tuple with size of the figure in inches.
:param xlabel: Label for the x-axis
:param ylabel: Label for the y-axis
:param ticks: Array of ticks used for x and y axes
:param dpi: DPI of the output image
:param csi_cmap: Colormap used for the CSI contours
:param csi_label: Label for the CSI colorbar
:return:
"""
plt.figure(figsize=figsize)
grid_ticks = np.arange(0, 1.01, 0.01)
sr_g, pod_g = np.meshgrid(grid_ticks, grid_ticks)
bias = pod_g / sr_g
csi = 1.0 / (1.0 / sr_g + 1.0 / pod_g - 1.0)
csi_contour = plt.contourf(sr_g, pod_g, csi, np.arange(0.1, 1.1, 0.1), extend="max", cmap=csi_cmap)
b_contour = plt.contour(sr_g, pod_g, bias, [0.5, 1, 1.5, 2, 4], colors="k", linestyles="dashed")
plt.clabel(b_contour, fmt="%1.1f", manual=[(0.2, 0.9), (0.4, 0.9), (0.6, 0.9), (0.7, 0.7)])
for r, roc_obj in enumerate(roc_objs):
perf_data = roc_obj.performance_curve()
plt.plot(1 - perf_data["FAR"], perf_data["POD"], marker=markers[r], color=colors[r],
label=obj_labels[r].replace("_dist", "").replace("-", " ").replace("_", " "))
cbar = plt.colorbar(csi_contour)
cbar.set_label(csi_label, fontsize=14)
plt.xlabel(xlabel, fontsize=14)
plt.ylabel(ylabel, fontsize=14)
plt.xticks(ticks)
plt.yticks(ticks)
plt.title(title, fontsize=14, fontweight="bold")
plt.text(0.48,0.6,"Frequency Bias",fontdict=dict(fontsize=14, rotation=45))
plt.legend(**legend_params)
plt.savefig(filename, dpi=dpi, bbox_inches="tight")
Может ли кто-нибудь помочь мне понять код? как правильно вставить переменные. У меня есть временной ряд с наблюдаемыми и оценочными значениями. и я хотел бы отобразить значения POD, BIAS, FAR, CSI на этом графике.
Любая помощь приветствуется. Спасибо