import numpy as np import matplotlib.pyplot as plt from textwrap import wrap #Import data as a end line seperated array of string from the .csv file dataArray = np.loadtxt("Scintillator_sheet_thickness_complete.csv",str) #initialise empty lists floatFormatted = [] dataFormatted = [] #iterate over row strings, split and format the strings into floats for row in dataArray: floatLikeRow = [float(x) for x in row.split(',') if x] floatFormatted += floatLikeRow #there are 8 measurements per scintillator, so each set of #scintillator measurements is added as a list to the formatted data list if len(floatFormatted) == 8: dataFormatted += [floatFormatted] floatFormatted = [] #Don't forget to reset! #Create lists for each set of scintillators N.B. these are ordered (i.e. by index) array2mm = dataFormatted[:30] array3mm = dataFormatted[30:50] array2mmBlack = dataFormatted[50:80] array3mmBlack = dataFormatted[80:] ############################################################################### #Create arrays and dictionaries for each regime (2mm, 2.6mm, 3mm and painted) dict200mm = {i: row for i,row in enumerate(array2mm) if np.average(row) < 2.3} dict260mm = {i: row for i,row in enumerate(array2mm) if np.average(row) > 2.3} dict300mm = {i: row for i,row in enumerate(array3mm)} array200mm = [dict200mm[key] for key in dict200mm.keys()] array260mm = [dict260mm[key] for key in dict260mm.keys()] dict200mmBlack = {i: array2mmBlack[i] for i in dict200mm.keys()} dict260mmBlack = {i: array2mmBlack[i] for i in dict260mm.keys()} dict300mmBlack = {i: row for i,row in enumerate(array3mmBlack)} array200mmBlack = [dict200mmBlack[key] for key in dict200mmBlack.keys()] array260mmBlack = [dict260mmBlack[key] for key in dict260mmBlack.keys()] #Create lists containing more statistical data on each scintillator thickness regime #Average Scintillator Thickness averageThicknessArray2mm = [np.average(row) for row in array2mm] averageThicknessArray3mm = [np.average(row) for row in array3mm] averageThicknessArray200mm = [np.average(row) for row in array200mm] averageThicknessArray260mm = [np.average(row) for row in array260mm] averageThicknessArray200mmBlack = [np.average(row) for row in array200mmBlack] averageThicknessArray260mmBlack = [np.average(row) for row in array260mmBlack] averageThicknessArray2mmBlack = [np.average(row) for row in array2mmBlack] averageThicknessArray3mmBlack = [np.average(row) for row in array3mmBlack] #Range of measurements maxLessMinArray2mm = [np.max(row) - np.min(row) for row in array2mm] maxLessMinArray3mm = [np.max(row) - np.min(row) for row in array3mm] maxLessMinArray200mm = [np.max(row) - np.min(row) for row in array200mm] maxLessMinArray260mm = [np.max(row) - np.min(row) for row in array260mm] maxLessMinArray200mmBlack = [np.max(row) - np.min(row) for row in array200mmBlack] maxLessMinArray260mmBlack = [np.max(row) - np.min(row) for row in array260mmBlack] maxLessMinArray300mmBlack = [np.max(row) - np.min(row) for row in array3mmBlack] #Standard Deviation of thickness per scintillator SDThicknessArray2mm = [np.std(row) for row in array2mm] SDThicknessArray3mm = [np.std(row) for row in array3mm] SDThicknessArray200mm = [np.std(row) for row in array200mm] SDThicknessArray260mm = [np.std(row) for row in array260mm] SDThicknessArray200mmBlack = [np.std(row) for row in array200mmBlack] SDThicknessArray260mmBlack = [np.std(row) for row in array260mmBlack] SDThicknessArray300mmBlack = [np.std(row) for row in array3mmBlack] #Differences difference200mm = [np.fabs(averageThicknessArray200mmBlack[i] - averageThicknessArray200mm[i]) for i in range(len(averageThicknessArray200mm))] difference260mm = [np.fabs(averageThicknessArray260mmBlack[i] - averageThicknessArray260mm[i]) for i in range(len(averageThicknessArray260mm))] difference300mm = [np.fabs(averageThicknessArray3mmBlack[i] - averageThicknessArray3mm[i]) for i in range(len(averageThicknessArray3mm))] ############################################################################### print(averageThicknessArray2mm) print("\n") print(averageThicknessArray3mm) print("\n") print(averageThicknessArray2mmBlack) print("\n") print(averageThicknessArray3mmBlack) """ colors = ['blue', 'lime', 'red'] #Create histograms of the results avethicktitle = "Average measured thickness of unpainted scintillator sheets" avethicktitlepaint = "Average measured thickness of painted scintillator sheets" rangetitle = "\n".join(wrap("Range (maximum thickness minus minimum thickness) of each sheets set of measured thicknesses (unpainted scintillator sheets)")) rangetitlepaint = "\n".join(wrap("Range (maximum thickness minus minimum thickness) of each sheets set of measured thicknesses (painted scintillator sheets)")) sdtitle = "\n".join(wrap("Standard deviation of each average measured thickness (unpainted scintillator sheets)")) sdtitlepaint = "\n".join(wrap("Standard deviation of each average measured thickness (painted scintillator sheets)")) differencetitle = "\n".join(wrap("Difference in average scintillator thickness after painting")) labels = ["2.0mm","2.6mm","3.0mm"] plt.figure(1) plt.hist([averageThicknessArray200mm,averageThicknessArray260mm,averageThicknessArray3mm], histtype='bar', color=colors, label = labels, stacked=True) plt.title(avethicktitle) plt.xlabel("Averaged Thickness (mm)") plt.ylabel("Bin count") plt.legend() #plt.savefig("AveThickTotal.png") plt.show() plt.figure(2) plt.hist([averageThicknessArray200mmBlack,averageThicknessArray260mmBlack,averageThicknessArray300mmBlack], histtype='bar', color=colors, label = labels, stacked=True) plt.title(avethicktitlepaint) plt.xlabel("Averaged Thickness (mm)") plt.ylabel("Bin count") plt.legend() #plt.savefig("AveThickTotalPaint.png") plt.show() plt.figure(3) plt.hist([maxLessMinArray200mm,maxLessMinArray260mm,maxLessMinArray3mm], histtype='bar', color=colors, label = labels, stacked=True) plt.title(rangetitle) plt.xlabel("Range in measurements (mm)") plt.ylabel("Bin count") plt.legend() #plt.savefig("RangeTotal.png") plt.show() plt.figure(4) plt.hist([maxLessMinArray200mmBlack,maxLessMinArray260mmBlack,maxLessMinArray300mmBlack], histtype='bar', color=colors, label = labels, stacked=True) plt.title(rangetitlepaint) plt.xlabel("Range in measurements (mm)") plt.ylabel("Bin count") plt.legend() #plt.savefig("RangeTotalPaint.png") plt.show() plt.figure(5) plt.hist([SDThicknessArray200mm,SDThicknessArray260mm,SDThicknessArray3mm], histtype='bar', color=colors, label = labels, stacked=True) plt.title(sdtitle) plt.xlabel("Standard Deviation (mm)") plt.ylabel("Bin count") plt.legend() #plt.savefig("SDTotal.png") plt.show() plt.figure(6) plt.hist([SDThicknessArray200mmBlack,SDThicknessArray260mmBlack,SDThicknessArray300mmBlack], histtype='bar', color=colors, label = labels, stacked=True) plt.title(sdtitlepaint) plt.xlabel("Standard Deviation (mm)") plt.ylabel("Bin count") plt.legend() #plt.savefig("SDTotalPaint.png") plt.show() plt.figure(7) plt.hist([difference200mm,difference260mm,difference300mm], histtype='bar', color=colors, label = labels, stacked=True) plt.title(differencetitle) plt.xlabel("Difference in Averaged Thickness (mm)") plt.ylabel("Bin count") plt.legend() #plt.savefig("DiffAveThickTotal.png") plt.show() ''' plt.figure(3) plt.hist(maxLessMinArray20mm, color = "blue") plt.xlabel("Range in measurements (mm)") plt.ylabel("Bin count") plt.title("\n".join(wrap("Range (maximum thickness minus minimum thickness) of each sheets set of measured thicknesses (2.0mm Scintillator sheets)"))) plt.savefig("MinMax20NOOmm.png") plt.show() plt.figure(2) plt.hist(maxLessMinArray26mm, color = "green") plt.xlabel("Range in measurements (mm)") plt.ylabel("Bin count") plt.title("\n".join(wrap("Range (maximum thickness minus minimum thickness) of each sheets set of measured thicknesses (2.6mm Scintillator sheets)"))) plt.savefig("MinMax26mm.png") plt.show() plt.figure(3) plt.hist(maxLessMinArray26mm, color = "green") plt.xlabel("Range in measurements (mm)") plt.ylabel("Bin count") plt.title("\n".join(wrap("Range (maximum thickness minus minimum thickness) of each sheets set of measured thicknesses (2.6mm and 2.0mm Scintillator sheets)"))) plt.savefig("MinMaxbothmm.png") plt.show() plt.figure(1) plt.hist(averageThicknessArray2mm, color = "blue", bins = 10) plt.xlabel("Averaged Thickness (mm)") plt.ylabel("Bin count") plt.title("Average Measured Thickness of 2mm Scintillator sheets") plt.savefig("Ave2mm.png") plt.show() plt.figure(2) plt.hist(averageThicknessArray3mm, color = "red", bins = 14) plt.xlabel("Averaged Thickness (mm)") plt.ylabel("Bin count") plt.title("Average Measured Thickness of 3mm Scintillator sheets") plt.savefig("Ave3mm.png") plt.show() plt.figure(3) plt.hist(SDThicknessArray2mm, color = "blue") plt.xlabel("Standard Deviation (mm)") plt.ylabel("Bin count") plt.title("\n".join(wrap("Standard Deviation of each Average Measured Thickness (2mm Scintillator sheets)"))) plt.savefig("SD2mm.png") plt.show() plt.figure(4) plt.hist(SDThicknessArray3mm, color = "red") plt.xlabel("Standard Deviation (mm)") plt.ylabel("Bin count") plt.title("\n".join(wrap("Standard Deviation of each Average Measured Thickness (3mm Scintillator sheets)"))) plt.savefig("SD3mm.png") plt.show() plt.figure(5) plt.hist(maxLessMinArray2mm, color = "blue") plt.xlabel("Range in measurements (mm)") plt.ylabel("Bin count") plt.title("\n".join(wrap("Range (maximum thickness minus minimum thickness) of each sheets set of measured thicknesses (2mm Scintillator sheets)"))) plt.savefig("MinMax2mm.png") plt.show() plt.figure(6) plt.hist(maxLessMinArray3mm, color = "red") plt.xlabel("Range in measurements (mm)") plt.ylabel("Bin count") plt.title("\n".join(wrap("Range (maximum thickness minus minimum thickness) of each sheets set of measured thicknesses (3mm Scintillator sheets)"))) plt.savefig("MinMax3mm.png") plt.show() '''"""