Kristian Schultz 3 лет назад
Родитель
Сommit
10ce192a3d
2 измененных файлов с 49 добавлено и 6 удалено
  1. 1 0
      .gitignore
  2. 48 6
      statistics.py

+ 1 - 0
.gitignore

@@ -2,3 +2,4 @@
 __pycache__
 *.swp
 temp
+docker/container.ok

+ 48 - 6
statistics.py

@@ -165,12 +165,12 @@ def showDiagnose(algo, score):
         
         bar = [i - w for i in bar]
 
-    plt.xlabel("Dataset")
-    plt.ylabel(score)
+    plt.ylabel("Dataset")
+    plt.xlabel(score)
     plt.yticks(range(len(testSets)), [cleanupName(name) for name in testSets])
     #plt.yticks(rotation="vertical")
     plt.legend()
-    plt.savefig(f"data_result/statistics/statistic-{algo}-{score}.pdf")
+    plt.savefig(f"data_result/statistics/byAlgorithm/statistic-{algo}-{score}.pdf")
     plt.show()
 
 
@@ -203,14 +203,50 @@ def showDiagnoseAverage(score, onlyOneBar=False):
         if not onlyOneBar:
             bar = [i - w for i in bar]
 
-    plt.xlabel("Dataset")
-    plt.ylabel(score)
+    plt.ylabel("Dataset")
+    plt.xlabel(score)
     plt.yticks(range(len(algs)), algs)
     plt.legend()
-    plt.savefig(f"data_result/statistics/statistic-Average-{score}-{barType}.pdf")
+    plt.savefig(f"data_result/statistics/average/statistic-Average-{score}-{barType}.pdf")
     plt.show()
 
 
+
+def showDiagnoseDataset(dataset):
+    def gr(n):
+        if n in resultList:
+            return resultList[n][algo].data[score]
+        else:
+            return 0.0
+    
+    print(f"{dataset}")
+    
+    gans = list(statistic.keys())
+    scores = [(a, s) for a in algs for s in (f1Score, kScore)]
+
+    w = 0.8 / len(scores)
+    bar = list(range(len(gans)))
+    plt.figure(figsize=(20, 18))
+    for (algo, score) in scores:
+        values = [
+                 (statistic[g][dataset][algo][score] if algo in statistic[g][dataset] else 0.0) if dataset in statistic[g] else 0.0
+                 for g in gans
+                 ]
+        plt.barh(bar, values, w, label=f"{algo}: {score}")
+        
+        
+        bar = [i - w for i in bar]
+
+    plt.xlabel("score")
+    plt.ylabel("Generator")
+    plt.yticks(range(len(gans)), gans)
+    #plt.yticks(rotation="vertical")
+    plt.legend()
+    plt.savefig(f"data_result/statistics/byDataset/statistic-{dataset}.pdf")
+    plt.show()
+
+
+
 for a in algs:
     showDiagnose(a, f1Score)
     showDiagnose(a, kScore)
@@ -218,3 +254,9 @@ for a in algs:
 showDiagnoseAverage(f1Score)
 showDiagnoseAverage(kScore)
 showDiagnoseAverage(kScore, True)
+
+for t in testSets:
+    showDiagnoseDataset(t)
+
+showDiagnoseDataset("Average")
+