def graphEdiffDelta2D(ax, data1, data2, Na): #data1 = gt.convert * data1 #data2 = gt.convert * data2 x, y, z, d = gt.calculateelementdiff2D(data1) x2, y2, z2, d2 = gt.calculateelementdiff2D(data2) RMSE = gt.calculaterootmeansqrerror(d, d2) / float(Na) print('Number of atoms: ' + str(Na)) print('RMSE: ' + str(RMSE) + ' kcal/mol/atom') print('RMSE: ' + str(float(Na) * RMSE) + ' kcal/mol') z = np.abs(z - z2) C = data1.shape[0] mat = np.ndarray(shape=(C, C), dtype=float) for i in x: for j in y: I = int(i) J = int(j) mat[J, I] = z[J + I * C] #get discrete colormap cmap = plt.get_cmap('RdBu', np.max(mat) - np.min(mat) + 1) # Show mat im = ax.matshow(mat, vmin=np.min(mat), vmax=np.max(mat)) cmap = plt.cm.jet norm = plt.Normalize(mat.min(), mat.max()) rgba = cmap(norm(mat)) rgba[range(C), range(C), :3] = 1, 1, 1 ax.imshow(rgba, interpolation='nearest') # Plot center line #ax.plot([x.min()-0.5,x.max()+0.5],[y.min()-0.5,x.max()+0.5],color='black',linewidth=4,alpha=0.9) # Set Limits ax.set_xlim([-0.02 * x.max(), x.max() + 0.02 * x.max()]) ax.set_ylim([-0.02 * y.max(), y.max() + 0.02 * y.max()]) ax.xaxis.tick_bottom() return im
def graphEdiffDelta2D(ax, data1, data2, Na): #data1 = gt.convert * data1 #data2 = gt.convert * data2 x, y, z, d = gt.calculateelementdiff2D(data1) x2, y2, z2, d2 = gt.calculateelementdiff2D(data2) RMSE = gt.calculaterootmeansqrerror(d,d2) / float(Na) print ('Number of atoms: ' + str(Na)) print ('RMSE: ' + str(RMSE) + ' kcal/mol/atom') print ('RMSE: ' + str(float(Na)*RMSE) + ' kcal/mol') z = np.abs(z - z2) C = data1.shape[0] mat = np.ndarray(shape=(C,C),dtype=float) for i in x: for j in y: I = int(i) J = int(j) mat[J,I] = z[J+I*C] #get discrete colormap cmap = plt.get_cmap('RdBu', np.max(mat)-np.min(mat)+1) # Show mat im = ax.matshow(mat,vmin = np.min(mat), vmax = np.max(mat)) cmap = plt.cm.jet norm = plt.Normalize(mat.min(), mat.max()) rgba = cmap(norm(mat)) rgba[range(C), range(C), :3] = 1, 1, 1 ax.imshow(rgba, interpolation='nearest') # Plot center line #ax.plot([x.min()-0.5,x.max()+0.5],[y.min()-0.5,x.max()+0.5],color='black',linewidth=4,alpha=0.9) # Set Limits ax.set_xlim([-0.02*x.max(),x.max()+0.02*x.max()]) ax.set_ylim([-0.02*y.max(),y.max()+0.02*y.max()]) ax.xaxis.tick_bottom() return im
def graphEdiffDelta2D(ax, data1, data2, Na): #data1 = gt.convert * data1 #data2 = gt.convert * data2 x, y, z, d = gt.calculateelementdiff2D(data1) x2, y2, z2, d2 = gt.calculateelementdiff2D(data2) RMSE = gt.calculaterootmeansqrerror(d, d2) / float(Na) print('dataz1:', z) print('dataz2:', z2) z = np.abs(z - z2) print('zdiff:', z) # Set up a regular grid of interpolation points xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 100) xi, yi = np.meshgrid(xi, yi) # Interpolate rbf = scipy.interpolate.Rbf(x, y, z, function='linear') zi = rbf(xi, yi) im = ax.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower', extent=[x.min(), x.max(), y.min(), y.max()]) ax.set_title('Difference Plot (symmetric)\nRMSE: ' + "{:.5f}".format(RMSE) + 'kcal/mol/atom Atoms: ' + str(Na), fontsize=14) # plt.xlabel('Structure') # plt.ylabel('Structure') ax.scatter(x, y, c=z, vmin=z.min(), vmax=z.max()) ax.set_xlim([-0.02 * x.max(), x.max() + 0.02 * x.max()]) ax.set_ylim([-0.02 * y.max(), y.max() + 0.02 * y.max()]) #ax.plot([x.min(),x.max()],[y.min(),x.max()],color='red',linewidth=4) ax.grid(True) return im
def graphEdiffDelta2D(ax, data1, data2, Na): data1 = gt.convert * data1 data2 = gt.convert * data2 x, y, z, d = gt.calculateelementdiff2D(data1) x2, y2, z2, d2 = gt.calculateelementdiff2D(data2) RMSE = gt.calculaterootmeansqrerror(d, d2) / float(Na) print("dataz1:", z) print("dataz2:", z2) z = np.abs(z - z2) print("zdiff:", z) # Set up a regular grid of interpolation points xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 100) xi, yi = np.meshgrid(xi, yi) # Interpolate rbf = scipy.interpolate.Rbf(x, y, z, function="linear") zi = rbf(xi, yi) im = ax.imshow(zi, vmin=z.min(), vmax=z.max(), origin="lower", extent=[x.min(), x.max(), y.min(), y.max()]) ax.set_title( "Difference Plot (symmetric)\nRMSE: " + "{:.5f}".format(RMSE) + "kcal/mol/atom Atoms: " + str(natm), fontsize=14 ) # plt.xlabel('Structure') # plt.ylabel('Structure') ax.scatter(x, y, c=z, vmin=z.min(), vmax=z.max()) ax.set_xlim([-0.02 * x.max(), x.max() + 0.02 * x.max()]) ax.set_ylim([-0.02 * y.max(), y.max() + 0.02 * y.max()]) # ax.plot([x.min(),x.max()],[y.min(),x.max()],color='red',linewidth=4) ax.grid(True) return im
def getmaxmin(data): x, y, z, d = gt.calculateelementdiff2D(data) z = gt.convert * z return z.max(), z.min()