From d843d66d03b105d384b1bfc624b157945d5cecec Mon Sep 17 00:00:00 2001 From: Klaus <klaus.boehnlein@tu-dresden.de> Date: Sat, 25 Sep 2021 11:52:51 +0200 Subject: [PATCH] Update --- src/Plot_MinVec.py | 270 +++++++++++++++++++++++++++++---------------- 1 file changed, 174 insertions(+), 96 deletions(-) diff --git a/src/Plot_MinVec.py b/src/Plot_MinVec.py index 8a37ee21..47e3b28a 100644 --- a/src/Plot_MinVec.py +++ b/src/Plot_MinVec.py @@ -108,7 +108,7 @@ lambda1 = 0.0 gamma = 1.0/4.0 gamma = 'infinity' -# gamma = '0' +gamma = '0' print('mu1: ', mu1) @@ -174,11 +174,27 @@ xmax = 0.3 xmin = 0.193 xmax = 0.24 -xmin=0.05 +xmin=0.01 +xmiddle = 0.24#0.24242424242424246 #0.24 xmax=0.4 -numPoints =100 -X_Values = np.linspace(xmin, xmax, num=numPoints) +numPoints_1 = 15 +numPoints_2 = 15 +# test +JumpVal = 0.194 #0.19515151515151516 +#X_Values before interesting part + +tick = (JumpVal-xmin)/numPoints_1 +# tick = (JumpVal-xmin)/numPoints_2 +print('tick:' ,tick) + +X_Values_one = np.linspace(xmin, JumpVal-tick, num=numPoints_1) +X_Values_middle = np.linspace(JumpVal, xmiddle, num=numPoints_2) +X_Values_two = np.linspace(JumpVal, xmax, num=numPoints_1) + +X_Values = np.concatenate([X_Values_one,X_Values_middle,X_Values_two]) +print('X_values_one:', X_Values_one) +print('X_values_two:', X_Values_two) print('X_values:', X_Values) @@ -186,8 +202,8 @@ Y_Values = [] Angle_Values = [] - - +other = False +# other = True for theta in X_Values: @@ -310,6 +326,11 @@ print("(Output) Values of " + yName + ": ", Y_Values) # print('np.nonzero(X_Values>x_plotValues[1]', np.nonzero(X_Values>x_plotValues[1]) ) +print('X_values:', X_Values) +print('Y_values:', Y_Values) + + + # ---------------- Create Plot ------------------- plt.figure() @@ -331,39 +352,49 @@ JumpVal = 0.19 X_Values = np.array(X_Values) Y_Values = np.array(Y_Values) Angle_Values = np.array(Angle_Values) -X_one = X_Values[X_Values<0.19] -Y_one = Y_Values[X_Values<0.19] -Angle_one=Angle_Values[X_Values<0.19] -X_two = X_Values[X_Values>=0.19] -Y_two = Y_Values[X_Values>=0.19] -Angle_two=Angle_Values[X_Values>=0.19] +# X_one = X_Values[X_Values<0.19] +# Y_one = Y_Values[X_Values<0.19] +# Angle_one=Angle_Values[X_Values<0.19] +# X_two = X_Values[X_Values>=0.19] +# Y_two = Y_Values[X_Values>=0.19] +# Angle_two=Angle_Values[X_Values>=0.19] -X_Values = X_two -Y_Values = Y_two -Angle_Values = Angle_two -print('X_one:', X_Values) +# X_Values = X_two +# Y_Values = Y_two +# # Angle_Values = Angle_two +# print('X_one:', X_Values) color=['r','b','g'] cmap = cm.get_cmap(name='rainbow') Y_arr = np.asarray(Y_Values, dtype=float) -Angle_arr = np.asarray(Angle_Values, dtype=float) +Angle_Values = np.asarray(Angle_Values, dtype=float) +# Angle_two = np.asarray(Angle_two, dtype=float) X_Values = np.asarray(X_Values, dtype=float) -Y_one = np.asarray(Y_one, dtype=float) -Angle_one = np.asarray(Angle_one, dtype=float) -X_one = np.asarray(X_one, dtype=float) +# Y_one = np.asarray(Y_one, dtype=float) +# Angle_one = np.asarray(Angle_one, dtype=float) +# X_one = np.asarray(X_one, dtype=float) + +# print('X_one:', X_one) +# print('Y_one:', Y_one) +# print('Angle_one:', Angle_one) + print('X_Values:', X_Values) print('Y_arr:', Y_arr) -print('Angle_arr:', Angle_arr) +# print('Angle_two:', Angle_two) +# +# print('X_Values:', X_Values) +# print('Y_arr:', Y_arr) +# print('Angle_two:', Angle_two) # Or = np.zeros_like(Y_arr) -Or_tmp = np.ones_like(X_Values) +# Or_tmp = np.ones_like(X_Values) # Or = np.concatenate(([X_Values],[Or_tmp]) ,axis=1) # Or = np.array([X_Values,Or_tmp]) @@ -381,19 +412,26 @@ print('ones.', np.ones((5,1),dtype=float)) # Or = np.hstack([np.transpose(X_Values),np.transpose(Or_tmp)]) # Or = np.hstack((X_Values,np.ones((X_Values.shape[0],1), dtype=X_Values.dtype))) X_Values= X_Values.reshape(X_Values.shape[0],1) -X_one= X_one.reshape(X_one.shape[0],1) +# X_one= X_one.reshape(X_one.shape[0],1) -Or_one = np.hstack((X_one,np.zeros((X_one.shape[0],1),dtype=float))) +# Or_one = np.hstack((X_one,np.zeros((X_one.shape[0],1),dtype=float))) Or = np.hstack((X_Values,np.zeros((X_Values.shape[0],1),dtype=float))) print('Or:', Or) - +# print('Or_one:', Or_one) # ----------------------------------------------------------------------------- #normalize sum_of_rows = Y_arr.sum(axis=1) -Y_arrN = Y_arr / sum_of_rows[:,np.newaxis] +print('sum_of_rows:', sum_of_rows) +# Y_arrN = Y_arr / sum_of_rows[:,np.newaxis] +Y_arrN = Y_arr / np.linalg.norm(Y_arr, ord=2, axis=1, keepdims=True) + # Y_arrN = Y_arr / np.sqrt(np.sum(Y_arr**2)) +# print('normalized Y_arrN_OLD:', Y_arrN) print('normalized Y_arrN:', Y_arrN) +# sum_of_rows_one = Y_one.sum(axis=1) +# Y_oneN = Y_one / sum_of_rows_one[:,np.newaxis] +# print('normalized Y_one:', Y_oneN) plt.grid(b=True, which='major') @@ -403,8 +441,16 @@ print(Or[:,1]) print(Or[:,0]) print(Y_arrN[:,0]) + +# +# print('Or_one[:,1]',Or_one[:,1]) +# print(Or_one[:,0]) +# print(Y_oneN[:,0]) + norm = Normalize() -norm.autoscale(Angle_arr) +norm.autoscale(Angle_Values) #here full array needed?! +# norm.autoscale(Angle_one) + colormap = cm.RdBu @@ -415,27 +461,42 @@ colormap = cm.RdBu # Plot only every second one skip = (slice(None,None,2)) -skip = (slice(None,None,2)) +# skip = (slice(None,None,2)) + +widths = np.linspace(0, 2, X_Values.size) # Q = ax.quiver(Or[:,0][skip], Or[:,1][skip] , Y_arrN[:,0][skip], Y_arrN[:,1][skip], color = colormap(norm(Angle_arr)), angles='xy', scale=5, units='xy', alpha=0.8, # headwidth=2) -Q_2 = ax.quiver(Or[:,0][skip], Or[:,1][skip] , Y_arrN[:,0][skip], Y_arrN[:,1][skip], color = colormap(norm(Angle_arr)), angles='xy', scale=5, units='xy', alpha=0.8, -headwidth=2) +# Q_one = ax.quiver(Or_one[:,0][skip], Or_one[:,1][skip] , Y_one[:,0][skip], Y_one[:,1][skip], color = colormap(norm(Angle_Values)), angles='xy', scale=5, units='xy', alpha=0.8, +# headwidth=2) -Q = ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_arr)), angles='xy', scale=8, units='xy', alpha=0.8, -headwidth=2) +# Q = ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_Values)), angles='xy', scale=15, units='xy', alpha=0.8, +# headwidth=2) -# f.colorbar(Q,extend='max') +# Q = ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_Values)), angles='xy', units='xy', alpha=0.8, scale=10, +# headwidth=2, linewidths=widths, edgecolors='k') +# Q = ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_Values)), angles='xy', units='xy', alpha=0.8, scale=20, +# headwidth=0.01, headlength=5, width=0.01, edgecolors='k') +# Q = ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_Values)), angles='xy', units='xy', alpha=0.8, scale=20, linewidth=0.1, edgecolors='k') +# Q = ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_Values)) , alpha=0.8, scale=20, linewidth=0.05, edgecolors='k', scale_units='width') +# Q = ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_Values)) , alpha=0.8, scale=15, scale_units='x', linewidth=0.3) +Q = ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_Values)) , alpha=1.0, scale=10 , ) +# (Y_Values[:,0].max()-Y_Values[:,0].min()) + +# f.colorbar(Q,extend='max') +# ax.colorbar(Q ) # ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], scale=5, units='xy') # ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], Angle_arr, angles='xy', scale=5, units='xy') # ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_arr)), angles='xy', scale=15, units='xy') # ax.quiver(Or[:,0], Or[:,1] , Y_arrN[:,0], Y_arrN[:,1], color = colormap(norm(Angle_arr)), angles='xy', scale=5, units='xy', alpha=0.8, # headwidth=2) -ax.scatter(Or[:,0], Or[:,1], c='black', s=10) + +ax.scatter(Or[:,0], Or[:,1]) +# ax.scatter(Or_one[:,0], Or_one[:,1], c='black', s=10) # ax.set_aspect('equal') # ax.set_aspect('auto') # ax.axis([0.1,0.4 , -0.1, 0.75]) @@ -445,74 +506,91 @@ ax.scatter(Or[:,0], Or[:,1], c='black', s=10) # ax.set_ylim((-0.1, Y_arrN[:,1].max())) -ax.set_xlim((0.1, X_Values[:,0].max()+0.2)) -ax.set_ylim((-0.1, 0.2 )) -# ax.tick_params(labelleft = False) - - -plt.show() -# plt.quiver(Or , Y_arrN[:,0], Y_arrN[:,1]) - - - - -for i, y in enumerate(Y_Values): - maxes = 1.1*np.amax(abs(Y_Values[i]), axis = 0) - tmp = Y_Values[i] - print('tmp:', tmp) - - tmp_normalized = tmp / np.sqrt(np.sum(tmp**2)) - print('tmp_normalized:', tmp_normalized) - # origin = np.array([[0, 0, 0],[0, 0, 0]]) # origin point - origin = np.array([X_Values[i], 1]) - # origin = np.array([0,0]) - print('origin:', origin) - plt.scatter(origin[0],origin[1]) - # plt.plot(origin, 'ok') - # plt.axis('equal') - # plt.axis('auto') - plt.xlim([-0.1, 0.4]) - plt.ylim([0, 4]) - # plt.xlim([-maxes[0], maxes[0]]) - # plt.ylim([-maxes[1], maxes[1]]) -# plt.quiver(*origin, tmp[0], tmp[1], headlength=4) - # plt.axes().arrow(*origin, tmp[0], tmp[1],head_width=0.05, head_length = 0.1, color = color[1]) - # plt.arrow(*origin, tmp[0], tmp[1],head_width=0.05, head_length = 0.1, color = color[1]) - # plt.arrow(*origin, tmp_normalized[0], tmp_normalized[1], color = color[1]) - # plt.arrow(*origin, tmp_normalized[0], tmp_normalized[1], head_width=0.05, head_length = 0.1, color = color[1]) - plt.arrow(*origin, tmp_normalized[0], tmp_normalized[1], head_width=0.05, head_length = 0.1, color = cmap(i)) - plt.grid(b=True, which='major') -# plt.quiver(*origin, test[0], test[1], color=['r','b','g'], scale=21) -# plt.quiver(*origin, Y_Values[0][:,0], Y_Values[0][:,1], color=['r','b','g'], scale=21) -# plt.quiver(*origin, Y_Values[:,0], V[:,1], color=['r','b','g'], scale=21) -# plt.quiver(*origin, Y_Values[:,0], V[:,1], color=['r','b','g'], scale=21) - - +plt.axvline(JumpVal,ymin=0, ymax= 1, color = 'g',alpha=0.5, linestyle = 'dashed') +plt.axvline(xmiddle,ymin=0, ymax= 1, color = 'g',alpha=0.5, linestyle = 'dashed') +plt.axvline(0.13606060606060608,ymin=0, ymax= 1, color = 'g',alpha=0.5, linestyle = 'dashed') +# ax.yaxis.set_major_locator(plt.MultipleLocator(np.pi / 2)) +# ax.yaxis.set_minor_locator(plt.MultipleLocator(np.pi / 12)) +# ax.yaxis.set_major_formatter(plt.FuncFormatter(format_func)) +ax.set_xlim((0.1, X_Values[:,0].max()+0.1)) +ax.set_ylim((-0.05, 0.1 )) +ax.set_xticks(np.arange(0, 0.45, step=0.05)) +# ax.set(aspect=1) +ax.tick_params(labelleft = False) +cbar = f.colorbar(cm.ScalarMappable(norm=norm, cmap=colormap), ax=ax, ticks=[0 ,np.pi/2]) +cbar.ax.set_yticklabels(['0', r"$\pi/2$"]) plt.show() -# ax.plot(X_Values, Y_Values) -# ax.scatter(X_Values, Y_Values) -# plt.plot(x_plotValues, y_plotValues,'.') -# plt.scatter(X_Values, Y_Values, alpha=0.3) -# plt.scatter(X_Values, Y_Values) -# plt.plot(X_Values, Y_Values,'.') -# plt.plot([X_Values[0],X_Values[-1]], [Y_Values[0],Y_Values[-1]]) -# plt.axis([0, 6, 0, 20]) - -plt.xlabel(xName) -# plt.ylabel(yName) - -plt.ylabel('$\kappa$') - -# ax.yaxis.set_major_formatter(ticker.FormatStrFormatter('%g $\pi$')) -# ax.yaxis.set_major_locator(ticker.MultipleLocator(base=0.1)) - - +# plt.quiver(Or , Y_arrN[:,0], Y_arrN[:,1]) -ax.grid(True) +plt.scatter(Or[:,0], Or[:,1], c='black', s=10) +if other: + for i, y in enumerate(Y_Values): + maxes = 1.1*np.amax(abs(Y_Values[i]), axis = 0) + tmp = Y_Values[i] + print('tmp:', tmp) + + tmp_normalized = tmp / np.sqrt(np.sum(tmp**2)) + print('tmp_normalized:', tmp_normalized) + # origin = np.array([[0, 0, 0],[0, 0, 0]]) # origin point + origin = np.array([X_Values[i], 1]) + # origin = np.array([0,0]) + print('origin:', origin) + # plt.scatter(origin[0],origin[1]) + # plt.plot(origin, 'ok') + # plt.axis('equal') + # plt.axis('auto') + plt.xlim([-0.1, 0.4]) + plt.ylim([-0.1, 4]) + # plt.xlim([-maxes[0], maxes[0]]) + # plt.ylim([-maxes[1], maxes[1]]) + # plt.quiver(*origin, tmp[0], tmp[1], headlength=4) + # plt.axes().arrow(*origin, tmp[0], tmp[1],head_width=0.05, head_length = 0.1, color = color[1]) + # plt.arrow(*origin, tmp[0], tmp[1],head_width=0.05, head_length = 0.1, color = color[1]) + # plt.arrow(*origin, tmp_normalized[0], tmp_normalized[1], color = color[1]) + # plt.arrow(*origin, tmp_normalized[0], tmp_normalized[1], head_width=0.05, head_length = 0.1, color = color[1]) + # plt.arrow(*origin, tmp_normalized[0], tmp_normalized[1], head_width=0.05, head_length = 0.1, color = cmap(i)) + # plt.arrow(origin[i,0], origin[i,1], tmp_normalized[0], tmp_normalized[1], head_width=0.05, head_length = 0.1, color = cmap(i)) + # plt.arrow(origin[i,0], origin[i,1], tmp_normalized[0], tmp_normalized[1], head_width=0.05, head_length = 0.1, color = cmap(i)) + # w = 0.005 * (y - ymin) / (ymax - ymin) + w = 0.005 + plt.quiver(Or[i,0], Or[i,1] , Y_arrN[i,0], Y_arrN[i,1], color = colormap(norm(Angle_Values)), angles='xy', units='xy', alpha=0.8, + headwidth=2, width=w, edgecolors='k') + plt.grid(b=True, which='major') + # plt.quiver(*origin, test[0], test[1], color=['r','b','g'], scale=21) + # plt.quiver(*origin, Y_Values[0][:,0], Y_Values[0][:,1], color=['r','b','g'], scale=21) + # plt.quiver(*origin, Y_Values[:,0], V[:,1], color=['r','b','g'], scale=21) + # plt.quiver(*origin, Y_Values[:,0], V[:,1], color=['r','b','g'], scale=21) + + + + + + plt.show() + # ax.plot(X_Values, Y_Values) + # ax.scatter(X_Values, Y_Values) + # plt.plot(x_plotValues, y_plotValues,'.') + # plt.scatter(X_Values, Y_Values, alpha=0.3) + # plt.scatter(X_Values, Y_Values) + # plt.plot(X_Values, Y_Values,'.') + # plt.plot([X_Values[0],X_Values[-1]], [Y_Values[0],Y_Values[-1]]) + # plt.axis([0, 6, 0, 20]) + + plt.xlabel(xName) + # plt.ylabel(yName) + + plt.ylabel('$\kappa$') + + # ax.yaxis.set_major_formatter(ticker.FormatStrFormatter('%g $\pi$')) + # ax.yaxis.set_major_locator(ticker.MultipleLocator(base=0.1)) + + + + + ax.grid(True) # # if angle PLOT : # ax.yaxis.set_major_locator(plt.MultipleLocator(np.pi / 2)) -- GitLab