gazesim/code/Visualization/EffectNumberofClusters.py

351 lines
9.6 KiB
Python

import os, sys
import seaborn
from pylab import rcParams
import cv2
import numpy as np
from numpy import linalg as LA
from time import time
from itertools import combinations
import matplotlib.pyplot as plt
from matplotlib.pyplot import *
import matplotlib.patches as mpatches
# activate latex text rendering
#rc('text', usetex=True)
def main(argv):
C12D2D = np.load("MeansC1D2D2.npy")
C12D3D = np.load("MeansC1D2D3.npy")
C22D2D = np.load("MeansC2D2D2.npy")
C22D3D = np.load("MeansC2D2D3.npy")
C32D2D = np.load("MeansC3D2D2.npy")
C32D3D = np.load("MeansC3D2D3.npy")
C42D2D = np.load("MeansC4D2D2.npy")
C42D3D = np.load("MeansC4D2D3.npy")
C52D2D = np.load("MeansC5D2D2.npy")
C52D3D = np.load("MeansC5D2D3.npy")
summeC12D2D = []
summeC22D2D = []
summeC32D2D = []
summeC42D2D = []
summeC52D2D = []
summeC12D3D = []
summeC22D3D = []
summeC32D3D = []
summeC42D3D = []
summeC52D3D = []
i = 0
while i < len(C12D2D):
j = 0
while j < len(C12D2D[0]):
summeC12D2D.append(C12D2D[i][j])
j += 1
i += 1
i = 0
while i < len(C22D2D):
j = 0
while j < len(C22D2D[0]):
summeC22D2D.append(C22D2D[i][j])
j += 1
i += 1
i = 0
while i < len(C32D2D):
j = 0
while j < len(C32D2D[0]):
summeC32D2D.append(C32D2D[i][j])
j += 1
i += 1
i = 0
while i < len(C42D2D):
j = 0
while j < len(C42D2D[0]):
summeC42D2D.append(C42D2D[i][j])
j += 1
i += 1
i = 0
while i < len(C52D2D):
j = 0
while j < len(C52D2D[0]):
summeC52D2D.append(C52D2D[i][j])
j += 1
i += 1
i = 0
while i < len(C12D3D):
j = 0
while j < len(C12D3D[0]):
summeC12D3D.append(C12D3D[i][j])
j += 1
i += 1
i = 0
while i < len(C22D3D):
j = 0
while j < len(C22D3D[0]):
summeC22D3D.append(C22D3D[i][j])
j += 1
i += 1
i = 0
while i < len(C32D3D):
j = 0
while j < len(C32D3D[0]):
summeC32D3D.append(C32D3D[i][j])
j += 1
i += 1
i = 0
while i < len(C42D3D):
j = 0
while j < len(C42D3D[0]):
summeC42D3D.append(C42D3D[i][j])
j += 1
i += 1
i = 0
while i < len(C52D3D):
j = 0
while j < len(C52D3D[0]):
summeC52D3D.append(C52D3D[i][j])
j += 1
i += 1
mean1 = np.mean(summeC12D2D)
mean2 = np.mean(summeC22D2D)
mean3 = np.mean(summeC32D2D)
mean4 = np.mean(summeC42D2D)
mean5 = np.mean(summeC52D2D)
mean6 = np.mean(summeC12D3D)
mean7 = np.mean(summeC22D3D)
mean8 = np.mean(summeC32D3D)
mean9 = np.mean(summeC42D3D)
mean10 = np.mean(summeC52D3D)
std1 = np.std(summeC12D2D)
std2 = np.std(summeC22D2D)
std3 = np.std(summeC32D2D)
std4 = np.std(summeC42D2D)
std5 = np.std(summeC52D2D)
std6 = np.std(summeC12D3D)
std7 = np.std(summeC22D3D)
std8 = np.std(summeC32D3D)
std9 = np.std(summeC42D3D)
std10 = np.std(summeC52D3D)
# i = 0
# while i < len(C12D2D):
# j = 0
# while j < len(C12D2D[0]):
# summeC12D2D.append(C12D2D[i][j])
# j += 1
# i += 1
# print summeC12D2D
# i = 0
# minimum2 = 100
# while i < len(C22D2D):
# print np.mean(C22D2D[i])
# if np.mean(C22D2D[i]) < minimum2:
# minimum2 = np.mean(C22D2D[i])
# i += 1
#
# i = 0
# minimum3 = 100
# while i < len(C32D2D):
# print np.mean(C32D2D[i])
# if np.mean(C32D2D[i]) < minimum3:
# minimum3 = np.mean(C32D2D[i])
# i += 1
#
# i = 0
# minimum4 = 100
# while i < len(C42D2D):
# print np.mean(C42D2D[i])
# if np.mean(C42D2D[i]) < minimum4:
# minimum4 = np.mean(C42D2D[i])
# i += 1
#
# i = 0
# minimum5 = 100
# while i < len(C52D2D):
# print np.mean(C52D2D[i])
# if np.mean(C52D2D[i]) < minimum5:
# minimum5 = np.mean(C52D2D[i])
# i += 1
#
# i = 0
# minimum6 = 100
# while i < len(C12D3D):
# print np.mean(C12D3D[i])
# if np.mean(C12D3D[i]) < minimum6:
# minimum6 = np.mean(C12D3D[i])
# i += 1
#
# i = 0
# minimum7 = 100
# while i < len(C22D3D):
# print np.mean(C22D3D[i])
# if np.mean(C22D3D[i]) < minimum7:
# minimum7 = np.mean(C22D3D[i])
# i += 1
#
# i = 0
# minimum8 = 100
# while i < len(C32D3D):
# print np.mean(C32D3D[i])
# if np.mean(C32D3D[i]) < minimum8:
# minimum8 = np.mean(C32D3D[i])
# i += 1
#
# i = 0
# minimum9 = 100
# while i < len(C42D3D):
# print np.mean(C42D3D[i])
# if np.mean(C42D3D[i]) < minimum9:
# minimum9 = np.mean(C42D3D[i])
# i += 1
# i = 0
# minimum10 = 100
# while i < len(C52D3D):
# print np.mean(C52D3D[i])
# if np.mean(C52D3D[i]) < minimum10:
# minimum10 = np.mean(C52D3D[i])
# i += 1
#
mean2D2D = [mean1,mean2,mean3,mean4,mean5]
mean2D3D = [mean6,mean7,mean8,mean9,mean10]
std2D2D = [std1,std2,std3,std4,std5]
std2D3D = [std6,std7,std8,std9,std10]
# print minimum1
# i = 0
# minimum2 = 100
# while i < 5:
# if np.mean(C12D2D[i]) < minimum:
# minimum1 = np.mean(C12D2D[i])
# i += 1
N = 5
ind = np.asarray([0.25,1.25,2.25,3.25,4.25])
width = 0.5 # the width of the bars
# x1 = [0.4,1.4,2.4,3.4,4.4]
x2 = [0.45,1.45,2.45,3.45,4.45]
# x3 = [0.5,1.5,2.5,3.5,4.5]
x4 = [0.55,1.55,2.55,3.55,4.55]
# x5 = [0.6,1.6,2.6,3.6,4.6]
fig = plt.figure(figsize=(14.0, 10.0))
ax = fig.add_subplot(111)
# print mean2D2D
# print mean2D3D
# ax.axhline(linewidth=2, y = np.mean(mean2D2D),color='r')
# ax.axhline(linewidth=2, y = np.mean(mean2D3D),color='blue')
# ax.axhline(linewidth=2, y = minvaluevalue,color='black')
# ax.text(0.98, Participantmeanvalue+0.5, "Mean %.2f" % Participantmeanvalue,fontsize=12, fontweight='bold',color='r')
# ax.text(0.98, maxvaluevalue+0.5, "Maximum %.2f" % maxvaluevalue,fontsize=12, fontweight='bold',color='black')
# ax.text(0.98, minvaluevalue+0.5, "Minimum %.2f" % minvaluevalue,fontsize=12, fontweight='bold', color='black')
# rects1 = ax.bar(ind, Participantmean,width, color='r',edgecolor='black',)#, hatch='//')
rects1 = ax.errorbar(x2, mean2D2D,yerr=[std2D2D,std2D2D],fmt='o',color='red',ecolor='red',lw=3, capsize=5, capthick=2)
plt.plot(x2, mean2D2D, marker="o", linestyle='-',lw=3,color='red',label = r'2D-to-2D')
rects2 =ax.errorbar(x4, mean2D3D,yerr=[std2D3D,std2D3D],fmt='o',color='blue',ecolor='blue',lw=3, capsize=5, capthick=2)
plt.plot(x4, mean2D3D, marker="o", linestyle='-',lw=3,color='blue', label = r'2D-to-3D')
legend(fontsize=20,loc='upper right')
# rects3 = ax.errorbar(x3, meanC3,yerr=[stdC3,stdC3],fmt='o',color='black',ecolor='black',lw=3, capsize=5, capthick=2)
# plt.plot(x3, meanC3, marker="o", linestyle='-',lw=3,color='black')
#
# rects4 =ax.errorbar(x4, meanC4,yerr=[stdC4,stdC4],fmt='o',color='green',ecolor='green',lw=3, capsize=5, capthick=2)
# plt.plot(x4, meanC4, marker="o", linestyle='-',lw=3,color='green')
#
# rects5 =ax.errorbar(x5, meanC5,yerr=[stdC5,stdC5],fmt='o',color='orange',ecolor='orange',lw=3, capsize=5, capthick=2)
# plt.plot(x5, meanC5, marker="o", linestyle='-',lw=3,color='orange')
ax.set_ylabel(r'Angular Error',fontsize=22)
ax.set_xlabel(r'Number of Calibration Depths',fontsize=22)
ax.set_xticks(ind+0.25)
ax.set_xticklabels( ('D1', 'D2', 'D3','D4', 'D5') ,fontsize=18)
TOPICs = [0.0,0.5,1.5,2.5,3.5,4.5,5.0]#,110]#,120]
print TOPICs
LABELs = ["",r'1',r'2', r'3', r'4', r'5', ""]#, ""]#, ""]
# fig.canvas.set_window_title('Distance Error Correlation')
plt.xticks(TOPICs, LABELs,fontsize=18)
# legend([rects1,rects2], [r'\LARGE\textbf{2D2D}', r'\LARGE\textbf{2D3D}'], loc='lower right')
TOPICS = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5]#,110]#,120]
print TOPICS
LABELS = [r'0.5', r'1',r'1.5', r'2',r'2.5', r'3',r'3.5', r'4',r'4.5',r'5']#, ""]#, ""]
# fig.canvas.set_window_title('Accuracy - Activity Statistics')
plt.yticks(TOPICS, LABELS,fontsize=18)
def autolabel(rects):
# attach some text labels
for rect in rects:
height = rect.get_height()
ax.text(0.26+rect.get_x()+rect.get_width()/2., height +0.35, "%.2f"%float(height),
ha='center', va='bottom',fontweight='bold',fontsize=13.5)
# autolabel(rects1)
left = 0.1 # the left side of the subplots of the figure
right = 0.975 # the right side of the subplots of the figure
bottom = 0.075 # the bottom of the subplots of the figure
top = 0.925 # the top of the subplots of the figure
wspace = 0.2 # the amount of width reserved for blank space between subplots
hspace = 0.4 # the amount of height reserved for white space between subplots
plt.subplots_adjust(left=left, bottom=bottom, right=right, top=top, wspace=wspace, hspace=hspace)
plt.show()
if __name__ == "__main__":
main(sys.argv[1:])