lw = 2 wlen = 7 wtype = "hanning" plt.figure(figsize=(12, 4)) plt.plot(xdata, [54]*len(xdata), "-", label="Chance level", color="#555753", linewidth=lw) plt.rcParams['font.size'] = 10 plt.rcParams['font.family'] = "Ubuntu" plt.suptitle("Results") for col in [2, 5, 8, 11]: ydata = np.array(d[:,col], dtype=float) yerr = np.array(d[:,col+1], dtype=float) _smooth = smooth(ydata, window_len=2*wlen+1, window=wtype)[wlen:-wlen] color = colors.pop() color2 = colors2.pop() plt.errorbar(xdata, ydata*100, yerr=yerr*100, fmt=",", color=color2, capsize=0, elinewidth=0.5) plt.plot(xdata, _smooth*100, "-", label=labels.pop(), color=color, linewidth=lw) plt.ylim(50, 104) plt.legend(fancybox=True, borderpad=1) plt.xlabel('Noise (sigma)') plt.ylabel('Clustering accuracy (%)') plt.grid(True, color=(0,0,0)) plt.savefig("plot.svg") plt.show()
import matplotlib.pyplot as plt from matplotlib import cm from plotting import smooth, heatcurve wlen = 7 d = np.loadtxt("summary.csv", dtype=str, skiprows=1, delimiter=", ") for col in [38, 41, 47]: xdata = np.array(d[:,0], dtype=float) ydata = np.array(d[:,col], dtype=float)*100 yerr = np.array(d[:,col+1], dtype=float)*100 a = np.swapaxes([ydata, yerr], 0, 1) _smooth = smooth(ydata, window_len=2*wlen+1)[wlen:-wlen] bfl = slider(a, wlen=wlen, lower=0, upper=46) fig = heatcurve(xdata, ydata, cdata=_smooth, yerr=yerr, yheat=np.log10(bfl), heatrange=(-3,3), threshold=2, size=(12,4), heatlabel="Log10(Bf)", ticks=range(-3,4)) plt.xlabel('Noise (sigma)', figure=fig) plt.ylabel('Difference in clustering accuracy (%)', figure=fig) if col == 47: plt.ylim(-5, 50, figure=fig) else: plt.ylim(-5, 25, figure=fig) plt.rcParams['font.size'] = 10 plt.rcParams['font.family'] = "Ubuntu"
indy = k label = "df:" + str(df) if wrt == "lr": indx = i indy = k label = "lr:" + str(lr) if wrt == "ms": indx = i indy = j label = "ms:" + str(ms) try: filename = file_names[file_names_short.index(namee)] dataframe = pd.read_csv(os.path.join(path, filename)) values = dataframe["Value"].tolist() smoothed_values = smooth(values, smoothing_factor) times = np.array(dataframe["Wall time"])[:len(smoothed_values)]/6000. times -= times[0] # Make it relative name = filename.replace("run-CartPole-v0_", "").split("_2019")[0] name = name.replace("_", " ").replace("-", ":") # Plot in corresponding axes ax[indy][indx].plot(times, smoothed_values, label=label) # ax[indx][indy].set_title(title) except Exception as e: print(e) # print("Mising:") # print(filename) # plt.set_xlabel('Relative Time [hours]') # plt.set_ylabel('Score [Points]')