#%matplotlib widget
import os
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits import mplot3d
from mpl_toolkits.mplot3d import axes3d
%matplotlib inline
#padding on the y axis between label and axis
plt.rcParams['ytick.major.pad']='10'
dpi_out = 400
fig_width = 3.39
golden_mean = (np.sqrt(5)-1.0)/2.0 # Aesthetic ratio
fig_height = fig_width*golden_mean # height in inches
MAX_HEIGHT_INCHES = 8.0
if fig_height > MAX_HEIGHT_INCHES:
print("WARNING: fig_height too large:" + fig_height +
"so will reduce to" + MAX_HEIGHT_INCHES + "inches.")
fig_height = MAX_HEIGHT_INCHES
#fig, ax = plt.subplots(figsize = (fig_width, fig_height), dpi=400, frameon=True)
small_tick_size = 8
small_label_size = 8
def get_full_path_frame(sites,data_root, full_csv_name):
print ("reading input file", full_csv_name)
kept_fields = ['qx', 'qy', 'real_freq', 'real_axis_value', 'component',
'crystal_field', 'mode_style', 'cross_hopping', 'parity', 'beta', 'impurity_solver', 'doping']
test_frame = pd.read_csv(os.path.join(data_root, full_csv_name))
if(sites == 1):
reduced_frame = test_frame.query('nb_sites == 1 & interaction_type == "density"'
#+ ' & mode_style == "diagonal" '
+ '& bosonic_freq_ind != bosonic_freq_ind & real_freq <= 15.')
elif(sites == 2):
reduced_frame = test_frame.query('nb_sites == 2 & interaction_type == "density"'
#+ ' & mode_style == "diagonal" '
+ '& bosonic_freq_ind != bosonic_freq_ind & real_freq <= 15.')
to_plot_qy0 = reduced_frame.query('qx == 0 & real_freq <= 15. & qy < .5')[kept_fields]
to_plot_qy0 = to_plot_qy0.sort_values('qy')
to_plot_qy0['path_index'] = to_plot_qy0.apply(lambda x: x['qy'] / 0.5, axis=1)
to_plot_qxpi = reduced_frame.query('qy == 0.5 & real_freq <= 15. and qx < 0.5')[kept_fields]
to_plot_qxpi = to_plot_qxpi.sort_values('qx')
to_plot_qxpi['path_index'] = to_plot_qxpi.apply(lambda x: 1.0 + x['qx'] / 0.5, axis=1)
to_plot_qxqy = reduced_frame.query('qy == qx & real_freq <= 15. & qx >= 0.')[kept_fields]
to_plot_qxqy = to_plot_qxqy.sort_values('qx', ascending=False)
to_plot_qxqy['path_index'] = to_plot_qxqy.apply(lambda x: 2. + np.sqrt(2.0) * (1.0 - x['qx'] / 0.5), axis=1)
path_frame = pd.concat([to_plot_qxqy, to_plot_qxpi, to_plot_qy0])
path_frame.reset_index(drop=True, inplace=True)
return path_frame
def get_full_path_frame_1(sites,data_root, full_csv_name):
print ("reading input file", full_csv_name)
kept_fields = ['qx', 'qy', 'real_freq', 'real_axis_value', 'component',
'crystal_field', 'mode_style', 'cross_hopping', 'parity', 'beta', 'impurity_solver', 'doping']
test_frame = pd.read_csv(os.path.join(data_root, full_csv_name))
if(sites == 1):
reduced_frame = test_frame.query('nb_sites == 1 & interaction_type == "density"'
#+ ' & mode_style == "diagonal" '
+ '& bosonic_freq_ind != bosonic_freq_ind & real_freq <= 0.25')
elif(sites == 2):
reduced_frame = test_frame.query('nb_sites == 2 & interaction_type == "density"'
#+ ' & mode_style == "diagonal" '
+ '& bosonic_freq_ind != bosonic_freq_ind & real_freq <= 0.25')
to_plot_qy0 = reduced_frame.query('qx == 0 & real_freq <= 0.25 & qy < .5')[kept_fields]
to_plot_qy0 = to_plot_qy0.sort_values('qy')
to_plot_qy0['path_index'] = to_plot_qy0.apply(lambda x: x['qy'] / 0.5, axis=1)
to_plot_qxpi = reduced_frame.query('qy == 0.5 & real_freq <= 0.25 and qx < 0.5')[kept_fields]
to_plot_qxpi = to_plot_qxpi.sort_values('qx')
to_plot_qxpi['path_index'] = to_plot_qxpi.apply(lambda x: 1.0 + x['qx'] / 0.5, axis=1)
to_plot_qxqy = reduced_frame.query('qy == qx & real_freq <= 0.25 & qx >= 0.')[kept_fields]
to_plot_qxqy = to_plot_qxqy.sort_values('qx', ascending=False)
to_plot_qxqy['path_index'] = to_plot_qxqy.apply(lambda x: 2. + np.sqrt(2.0) * (1.0 - x['qx'] / 0.5), axis=1)
path_frame = pd.concat([to_plot_qxqy, to_plot_qxpi, to_plot_qy0])
path_frame.reset_index(drop=True, inplace=True)
return path_frame
def get_pivot_table2(in_component, in_crystal_field, in_mode_style,
in_cross_hopping, in_parity, in_impurity_solver):
temp_query = path_frame.query('component == "' + in_component
+ '" & cross_hopping == ' + str(in_cross_hopping)
+ ' & crystal_field == ' + str(in_crystal_field)
+ '& mode_style == "' + in_mode_style
+ '" & parity == "' + in_parity + '"'
+ ' & impurity_solver == "' + in_impurity_solver + '"')
if temp_query.empty:
out = None
else:
out = temp_query.pivot(columns='path_index', index='real_freq', values='real_axis_value')
return out
def get_pivot_table3(in_component, in_crystal_field, in_mode_style, in_cross_hopping,
in_parity, in_impurity_solver, in_doping):
temp_query = path_frame.query('component == "' + in_component
+ '" & cross_hopping == ' + str(in_cross_hopping)
+ ' & crystal_field == ' + str(in_crystal_field)
+ '& mode_style == "' + in_mode_style
+ '" & parity == "' + in_parity + '"'
+ ' & impurity_solver == "' + in_impurity_solver + '"'
+ '& doping == ' + str(in_doping))
if temp_query.empty:
out = None
else:
out = temp_query.pivot(columns='path_index', index='real_freq', values='real_axis_value')
return out
def get_qx_qy(in_component, in_crystal_field, in_mode_style, in_cross_hopping, in_parity, in_impurity_solver):
temp_query = path_frame.query('component == "' + in_component
+ '" & cross_hopping == ' + str(in_cross_hopping)
+ ' & crystal_field == ' + str(in_crystal_field)
+ '& mode_style == "' + in_mode_style
+ '" & parity == "' + in_parity + '"'
+ ' & impurity_solver == "' + in_impurity_solver + '"'
+ ' & real_freq == ' + str(0) )
if temp_query.empty:
out = None
else:
out = temp_query[['path_index', 'qx', 'qy']]
return out
def get_pivot_table_ch(in_component, in_beta, in_mode_style, in_cross_hopping, in_parity,
in_path_frame, in_impurity_solver):
temp_query = in_path_frame.query('component == "' + in_component
+ '" & cross_hopping == ' + str(in_cross_hopping)
+ ' & beta == ' + str(beta)
+ '& mode_style == "' + in_mode_style
+ '" & parity == "' + in_parity + '"'
+ ' & impurity_solver == "' + in_impurity_solver + '"')
if temp_query.empty:
out = None
else:
out = temp_query.pivot(columns='path_index', index='real_freq', values='real_axis_value')
return out
def get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot):
line_index = np.where(all_crystal_fields==crystal_field)[0][0]
col_index = np.where(components_to_plot==component)[0][0]
return (line_index, col_index)
def set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot, text_size=40):
line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size)
ax.yaxis.set_major_locator(plt.MultipleLocator(1.0))
ax.yaxis.set_minor_locator(plt.MultipleLocator(0.02))
if (col_index > 60):
#ax.yaxis.set_ticks([])# s_position('none')
ax.yaxis.set_major_formatter(plt.NullFormatter())
else:
ax.set_ylabel(r"$\xi$ = " + str(crystal_field), fontsize=text_size+2)
if (line_index < len(all_crystal_fields) - 1):
ax.xaxis.set_ticks([])# s_position('none')
#ax.legend(fontsize=30)
def integrate_peak(xdata, ydata):
xmin = 0.
xmax = 1.
interval_mask = (xdata > xmin) * (xdata < xmax)
interval = xdata[interval_mask]
peak = ydata[interval_mask]
peak_weight = np.trapz(peak, interval)
return peak_weight
data_root = "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sz_unfold/"
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
full_path_frame = get_full_path_frame(2,data_root, full_csv_name)
reading input file data_real_normal.csv
mode_style = "1auc"
#mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0
path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
all_dopings = np.sort(path_frame['doping'].unique())[::-1]
del_index = np.where(all_dopings==1.5)
all_dopings = np.delete(all_dopings, del_index)
all_mode_styles = np.sort(path_frame['mode_style'].unique())
all_components = np.sort(path_frame['component'].unique())
all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
nb_crytal_fields = len(all_crystal_fields)
all_betas = np.sort(path_frame['beta'].unique())[::-1]
components_to_plot = all_components
#components_to_plot = np.array(['N_a0-N_b0', 'Sz0', 're_xx0', 're_xx1','im_xx0', 'im_xx1'])##,'N_a1-N_b1','Sz1' 'im_yy1','im_xx1',
# , 're_xx1' 're_yy1'])
#components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$','$S^z_{0}$'])
#components_to_plot = np.array([ 'N_a-N_b', 'Sz','re_xx', 're_yy', 'im_xx', 'im_yy'])
#components_to_plot = np.array(['im_xx0+im_xx1'])
print (components_to_plot, all_betas, all_crystal_fields, all_dopings)
['Sx_0' 'Sy_0' 'Sz_0'] [30.] [0] [0]
nb_components_per_line = 4
fig = plt.figure(figsize = (nb_components_per_line * 3 * fig_width, 4 * 7 * fig_height), frameon=True)
axes=[]
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
full_index = 1
for crystal_field in all_crystal_fields:
for component in components_to_plot:
col_index = (full_index - 1) % nb_components_per_line
line_index = (full_index - 1) // nb_components_per_line
#line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
#full_index = 1 + len(components_to_plot) * line_index + col_index
pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
if (pivot_table is None):
print ("none", component)
# Do not create axes if no data to plot
continue
vmax = 1.0
ax = fig.add_subplot(8, nb_components_per_line, full_index)
#print(crystal_field)
axes.append(ax)
if(line_index < -1):
ax.xaxis.set_ticks([])
else:
ax.set_xticks(x_positions)
ax.set_xticklabels(x_labels)
set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
to_plot_x = pivot_table.columns
to_plot_y = pivot_table.index.values
data = pivot_table.values
#######################################
#### Definition of the function to plot
#######################################
#to_plot_z = np.log10(data + 1e-5)
to_plot_z = data / (5.5 + data)
#Z=to_plot_z
def f(x, y):
return to_plot_z
X=to_plot_x
Y=to_plot_y
X, Y = np.meshgrid(to_plot_x,to_plot_y)
Z = f(X, Y)
print(Z.shape)
#print(to_plot_x.shape)
#print(Z.shape)
#########################################
#### Plotting instruction with parameters
#########################################
im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
rasterized=True,
cmap=plt.get_cmap('jet'),
#cmap=plt.get_cmap('gist_stern_r'),
vmin=0, vmax=vmax
#vmax = min(40, np.amax(to_plot_z))
)
fig.colorbar(im, ax=ax)
text_size = 42
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size)
if (col_index > 70):
ax.yaxis.set_ticks([])# s_position('none')
else:
#ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])# s_position('none')
ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
ax.set_ylabel(r"", fontsize=text_size+2)
#ax.yaxis.set_ticks([1, 2, 3, 4])# s_position('none')
ax.set_ylabel(r"", fontsize=text_size+2)
if (col_index == 1):
#ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
pass
#if (line_index < len(all_crystal_fields) - 1):
# ax.xaxis.set_ticks([])# s_position('none')
#########################################
#########################################
plt.title(component, fontsize=40)
full_index += 1
ax.set_ylim([0.0, 0.5])
#for i in np.arange(201):
# print(to_plot_x[i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.pdf")
(1001, 200) (1001, 200) (1001, 201)
# import matplotlib.colors as colors
components_per_line = len(components_to_plot)
text_size = 22
fig = plt.figure(figsize = (components_per_line * 3 * fig_width, components_per_line * 4 * fig_height), frameon=True)
for component_index in np.arange(len(components_to_plot)):
component = components_to_plot[component_index]
line_index, col_index = component_index // components_per_line, component_index % components_per_line
full_index = 1 + components_per_line * line_index + col_index
pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
if (pivot_table is None):
#print ("none", component)
# Do not create axes if no data to plot
continue
vmax = 1.2
ax = fig.add_subplot(components_per_line, components_per_line, full_index)
#set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size)
ax.yaxis.set_major_locator(plt.MultipleLocator(.2))
ax.yaxis.set_minor_locator(plt.MultipleLocator(0.02))
ax.xaxis.set_major_locator(plt.MultipleLocator(0.2))
ax.xaxis.set_minor_locator(plt.MultipleLocator(0.02))
ax.xaxis.set_ticks([0, 0.5, 1., 1.5, 2, 2.5, 3.])# s_position('none')
if (col_index == 0):
ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
to_plot_x = pivot_table.columns
to_plot_y = pivot_table.index.values
#print (np.amax(to_plot_y))
data = pivot_table.values
data = result = np.where(data<0.00001, 0.0001, data)
cutoff = 2.5
#cutoff = .2
#######################################
#### Definition of the function to plot
#######################################
print (np.amin(data))
print (np.amax(data))
#to_plot_z = np.log10(data + 1e-6)
to_plot_z = data / (cutoff + data)
print (np.amax(to_plot_z))
#########################################
#### Plotting instruction with parameters
#########################################
im = plt.pcolormesh(to_plot_x, to_plot_y, data,
rasterized=True,
cmap=plt.get_cmap('jet'),
#cmap=plt.get_cmap('gist_stern_r'),
#vmin=0,
#vmax=5.,
vmax = 100.,#min(40, np.amax(to_plot_z)
norm=colors.LogNorm(vmin=data.min(), vmax=data.max()/1.)
)
fig.colorbar(im, ax=ax)
#########################################
#########################################
plt.title(component, fontsize=20)
#ax.yaxis.set_ticks(np.linspace(0, stop=max_energy, num=11))
# Don't allow the axis to be on top of your data
ax.set_axisbelow(True)
ax.set_ylim([0, 5.0])
#y_vals = np.array([np.sqrt(1. - gamma(elem)**2) for elem in to_plot_x])
#if ((U_val, beta) in s_values.keys()):
#if ((s_values[(U_val, beta)] > 0.) and (col_index > 0)):
#ax.plot(to_plot_x, J * 4 * s_values[(U_val, beta)] * y_vals, lw=3., c='k')
plt.tight_layout()
#plt.savefig(os.path.join(selected_path, config + "_b" + str(beta) + suffix + "_Magnon_alpscore_tail_log_rpa_full.pdf"))
1.0020393453855727e-05 2470.549598838504 0.9989891023612409
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-16-fd9cc3388b1c> in <module> 66 #vmax=5., 67 vmax = 100.,#min(40, np.amax(to_plot_z) ---> 68 norm=colors.LogNorm(vmin=data.min(), vmax=data.max()/1.) 69 ) 70 fig.colorbar(im, ax=ax) NameError: name 'colors' is not defined
nb_components_per_line = 4
fig = plt.figure(figsize = (nb_components_per_line * 3 * fig_width, 4 * 7 * fig_height), frameon=True)
axes=[]
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
full_index = 1
for crystal_field in all_crystal_fields:
for component in components_to_plot:
col_index = (full_index - 1) % nb_components_per_line
line_index = (full_index - 1) // nb_components_per_line
#line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
#full_index = 1 + len(components_to_plot) * line_index + col_index
pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
if (pivot_table is None):
print ("none", component)
# Do not create axes if no data to plot
continue
vmax = 1.0
ax = fig.add_subplot(8, nb_components_per_line, full_index)
#print(crystal_field)
axes.append(ax)
if(line_index < -1):
ax.xaxis.set_ticks([])
else:
ax.set_xticks(x_positions)
ax.set_xticklabels(x_labels)
set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
to_plot_x = pivot_table.columns
to_plot_y = pivot_table.index.values
data = pivot_table.values
#######################################
#### Definition of the function to plot
#######################################
#to_plot_z = np.log10(data + 1e-5)
to_plot_z = data #/ (5.5 + data)
#Z=to_plot_z
def f(x, y):
return to_plot_z
X=to_plot_x
Y=to_plot_y
X, Y = np.meshgrid(to_plot_x,to_plot_y)
Z = f(X, Y)
#print(to_plot_y)
#print(Z.shape)
specw = np.zeros_like(to_plot_x)
for q_index in np.arange(to_plot_x.shape[0]):
specw[q_index] = np.trapz(to_plot_z[:800, q_index], to_plot_y[:800])
ax.plot( to_plot_x, specw)
print(specw[0])
#########################################
#### Plotting instruction with parameters
#########################################
#im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
# rasterized=True,
# cmap=plt.get_cmap('jet'),
# #cmap=plt.get_cmap('gist_stern_r'),
# vmin=0, vmax=vmax
# #vmax = min(40, np.amax(to_plot_z))
# )
#fig.colorbar(im, ax=ax)
text_size = 42
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size)
if (col_index > 70):
ax.yaxis.set_ticks([])# s_position('none')
#else:
# ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])# s_position('none')
#ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
ax.set_ylabel(r"", fontsize=text_size+2)
#ax.yaxis.set_ticks([1, 2, 3, 4])# s_position('none')
ax.set_ylabel(r"", fontsize=text_size+2)
if (col_index == 1):
#ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
pass
#if (line_index < len(all_crystal_fields) - 1):
# ax.xaxis.set_ticks([])# s_position('none')
#########################################
#########################################
plt.title(component, fontsize=40)
full_index += 1
ax.set_ylim([0., 4.0])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.pdf")
0.030849381070888908 0.03084927202237235 0.005934198879963843
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold"][::1]
selected_paths_sp = ["/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b18",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b25Sx",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz0"][::1]
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
y_labels = [2, 4]
y_positions = [0.2, 0.4]
all_component_names = ['Na-Nb', 'Sz', 're_yy']
mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0
selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2, 2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [ 18., 25., 30., 30.0, 30.0, 30.0, 30.0, 30.0][::1]
temps = [0.056, 0.040 , 0.033]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
moment_x = [ [0.0,0] ,[0.62, -0.62], [0.74, -0.74], [0.3968,0],[0.01,0] ]
moment_z = [[0., 0.0] ,[0., 0.0], [0., 0.0], [0, 0.793], [0, 0.531]]
#moment_x = [ [0.74, -0.74] ,[0.73, -0.73], [0.431,-0.431], [0.3968,-0.3968], [0.,-0.] ]
#moment_z = [[0.0, 0.0] ,[0.222, 0.222], [0.668, 0.668], [0.793, 0.793], [0.9984, 0.9984]]
fig = plt.figure(figsize = (len(selected_components) * 2.2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
#components_to_plot = all_components
full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
#components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
#components_to_plot = np.array(['im_xx0+im_xx1'])
if(site[path_index] == 1):
components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
#components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
#component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$Sz$", 're_xx': r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy': r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$S^z$", 're_xx': r"$R^x$", 'im_xx': r"$I^x$",'re_yy': r"$R^y$", 'im_yy': r"$I^y$" }
#component_names = { 're_xx': r"$R_x$", 'im_xx': r"$I_x$",'re_yy': r"$R_y$", 'im_yy': r"$I_y$" }
if(site[path_index] == 2):
components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$', '$S^z_{0}$'])
#components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
#component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0': r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$R^x$", 'im_xx0': r"$I^x$",'re_yy0': r"$\R^y$", 'im_yy0': r"$I^y$"}
component_names = { '$S^x_{0}$': r"$\chi^{xx}$", '$S^y_{0}$': r"$\chi^{yy}$", '$S^z_{0}$': r"$\chi^{zz}$"}
#print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
component_index = 0
spectra = np.load(os.path.join(selected_paths_sp[path_index], "spectra.npy"))
wgrid = np.load(os.path.join(selected_paths_sp[path_index], "wgrid.npy"))
for crystal_field in all_crystal_fields:
for component in components_to_plot:
mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
##beta = 30.0
beta = betas[path_index]
doping = 0
if(component_index != 3):
path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
else:
path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
all_dopings = np.sort(path_frame['doping'].unique())[::-1]
del_index = np.where(all_dopings==1.5)
all_dopings = np.delete(all_dopings, del_index)
all_mode_styles = np.sort(path_frame['mode_style'].unique())
all_components = np.sort(path_frame['component'].unique())
all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
nb_crytal_fields = len(all_crystal_fields)
all_betas = np.sort(path_frame['beta'].unique())[::-1]
print(selected_paths)
print(component)
#col_index = (full_index - 1) % nb_components_per_line
#line_index = (full_index - 1) // nb_components_per_line
#line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
#full_index = 1 + len(components_to_plot) * line_index + col_index
pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
if (pivot_table is None):
print ("none", component)
# Do not create axes if no data to plot
#continue
vmax = 1.0
print(len(selected_paths))
print(len(components_to_plot))
line_index, col_index = path_index, component_index
full_index = 1 + (len(components_to_plot)) * line_index + col_index
print(line_index, component_index, full_index)
if (component_index != 3):
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index)
else:
#ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index, projection='3d')
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index)
#ax = fig.add_subplot(7, 6, full_index)
axes.append(ax)
if(line_index < len(selected_paths)-1 and component_index !=3 ):
ax.xaxis.set_ticks([])
elif(component_index < 3):
ax.set_xticks(x_positions)
ax.set_xticklabels(x_labels)
print(crystal_field)
#set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
if (component_index != 6):
to_plot_x = pivot_table.columns
to_plot_y = pivot_table.index.values
data = pivot_table.values
#######################################
#### Definition of the function to plot
#######################################
#to_plot_z = np.log10(data + 1e-5)
to_plot_z = data / (5.5 + data)
to_plot_z2 = data
#Z=to_plot_z
def f(x, y):
return np.absolute(data)
X=to_plot_x
Y=to_plot_y
X, Y = np.meshgrid(to_plot_x,to_plot_y)
Z = f(X, Y)
print(X.shape, Z.shape)
#print(X.shape)
#print(to_plot_x.shape)
#print(Z.shape)
#########################################
#### Plotting instruction with parameters
#########################################
if (component_index != 3):
im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
rasterized=True,
cmap=plt.get_cmap('jet'),
#cmap=plt.get_cmap('gist_stern_r'),
vmin=0, vmax=vmax
#vmax = min(40, np.amax(to_plot_z))
)
else:
norm = plt.Normalize(Z.min(), Z.max())
colors = cm.viridis(norm(Z))
rcount, ccount, _ = colors.shape
print(rcount, ccount)
if(path_index != 10):
#print(Z[:30, 95])
Z[:, 100] = 1.0 * (Z[:, 95])
#ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1, edgecolor='none')
#surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
# facecolors=colors, shade=False)
ax.set_ylim([0, 0.25])
#ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
ax.plot(wgrid, spectra, linewidth=3.2)
#surf.set_facecolor((0,0,0,0))
#ax.view_init(50, -40)
#fig.colorbar(im, ax=ax)
if (component_index == 0):
x_pos = [1.7, 1.7]
y_pos = [0.22, 0.22]
x_direct = moment_x[path_index]
y_direct = moment_z[path_index]
if(path_index != 0):
ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
#ax.axis([-2.5,2.5,-2.5,2.5])
text_size = 42
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
if (col_index == 3):
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
#for tick in ax.zaxis.get_major_ticks():
# tick.label.set_fontsize(text_size-28)
specw = np.zeros_like(to_plot_x)
for q_index in np.arange(to_plot_x.shape[0]):
specw[q_index] = np.trapz(to_plot_z2[:300, q_index], to_plot_y[:300])
if(path_index == 1 and q_index == 100):
specw[q_index] = specw[q_index - 1]
ax.plot(to_plot_x, specw/10.0, color='w', linewidth= 3.2)
if(component_index == 2):
ax.tick_params(labelleft=False,labeltop=False, labelright=True)
ax.tick_params(left=False,top=False, right=True, length=5, width=4)
elif(component_index == 0):
ax.tick_params(left=True,top=False, right=False, length=5, width=4)
if(component_index == 2):
ax.yaxis.set_label_position("right")
if (col_index > 0 and col_index < 2 and col_index !=3 ):
ax.yaxis.set_ticks([])# s_position('none')
elif(col_index !=3):
if(col_index == 0):
if(path_index ==1):
ax.text(0.55, 0.95, r"$T=$"+ str(temps[path_index]),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
else:
ax.text(0.62, 0.95, r"$T=$"+ str(temps[path_index]),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
#if(path_index < 2):
# ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#else:
# ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
if(col_index == 0):
ax.set_ylabel(r"Energy", fontsize=text_size+10)
elif(col_index == 2):
ax.set_ylabel(r"SW", fontsize=text_size+10)
if(col_index == 2):
ax.set_yticks(y_positions)
ax.set_yticklabels(y_labels, fontsize=text_size+10 )
if (col_index == 0):
#ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
pass
if (line_index < len(all_crystal_fields) - 1):
ax.xaxis.set_ticks([])# s_position('none')
#if (line_index == 0):
# ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
#########################################
#########################################
if(component_index == 6):
ax.set_yticks([0, 0.25])
ax.set_zticks([0, 10, 20, 30])
if(path_index == 0):
#plt.title(component, fontsize=50, pad=20)
#if(component_index == 3):
# plt.title(component, fontsize=50, pad=78)
ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
if(component_index == 3):
ax.set_title(component_names[component], fontsize=text_size+25, pad=92)
#full_index += 1
if (component_index != 3):
ax.set_ylim([0., 0.5])
#fig.tight_layout(pad=0.5)
#fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.01, hspace=0.05)
#else:
#fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.05)
if (component_index == 3):
ax.set_ylim([0, 2.0])
ax.set_xlim([-1.5, 1.5])
#ax.set_zlim([0, 30.0])
component_index += 1
#plt.subplots_adjust(left=0.125,bottom=0.1, right=0.9, top=0.9, wspace=0.1, hspace=0.1)
#plt.subplot_tool()
#plt.show()
#for i in np.arange(to_plot_x.shape[0]):
# print(i, to_plot_x[i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
0 0 1
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
0 1 2
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
0 2 3
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
1 0 4
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
1 1 5
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
1 2 6
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
2 0 7
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
2 1 8
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
2 2 9
3.4
(1001, 151) (1001, 151)
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold"][::1]
selected_paths_sp = ["/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b18",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b25Sx",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz0"][::1]
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
y_labels = [2, 4]
y_positions = [0.2, 0.4]
all_component_names = ['Na-Nb', 'Sz', 're_yy']
mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0
selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2, 2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [ 18., 25., 30., 30.0, 30.0, 30.0, 30.0, 30.0][::1]
temps = [0.056, 0.040 , 0.033]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
moment_x = [ [0.0,0] ,[0.62, -0.62], [0.74, -0.74], [0.3968,0],[0.01,0] ]
moment_z = [[0., 0.0] ,[0., 0.0], [0., 0.0], [0, 0.793], [0, 0.531]]
#moment_x = [ [0.74, -0.74] ,[0.73, -0.73], [0.431,-0.431], [0.3968,-0.3968], [0.,-0.] ]
#moment_z = [[0.0, 0.0] ,[0.222, 0.222], [0.668, 0.668], [0.793, 0.793], [0.9984, 0.9984]]
fig = plt.figure(figsize = (len(selected_components) * 2.2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
#components_to_plot = all_components
full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
#components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
#components_to_plot = np.array(['im_xx0+im_xx1'])
if(site[path_index] == 1):
components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
#components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
#component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$Sz$", 're_xx': r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy': r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$S^z$", 're_xx': r"$R^x$", 'im_xx': r"$I^x$",'re_yy': r"$R^y$", 'im_yy': r"$I^y$" }
#component_names = { 're_xx': r"$R_x$", 'im_xx': r"$I_x$",'re_yy': r"$R_y$", 'im_yy': r"$I_y$" }
if(site[path_index] == 2):
components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$', '$S^z_{0}$'])
#components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
#component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0': r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$R^x$", 'im_xx0': r"$I^x$",'re_yy0': r"$\R^y$", 'im_yy0': r"$I^y$"}
component_names = { '$S^x_{0}$': r"$\chi^{xx}$", '$S^y_{0}$': r"$\chi^{yy}$", '$S^z_{0}$': r"$\chi^{zz}$"}
#print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
component_index = 0
spectra = np.load(os.path.join(selected_paths_sp[path_index], "spectra.npy"))
wgrid = np.load(os.path.join(selected_paths_sp[path_index], "wgrid.npy"))
for crystal_field in all_crystal_fields:
for component in components_to_plot:
mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
##beta = 30.0
beta = betas[path_index]
doping = 0
if(component_index != 3):
path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
else:
path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
all_dopings = np.sort(path_frame['doping'].unique())[::-1]
del_index = np.where(all_dopings==1.5)
all_dopings = np.delete(all_dopings, del_index)
all_mode_styles = np.sort(path_frame['mode_style'].unique())
all_components = np.sort(path_frame['component'].unique())
all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
nb_crytal_fields = len(all_crystal_fields)
all_betas = np.sort(path_frame['beta'].unique())[::-1]
print(selected_paths)
print(component)
#col_index = (full_index - 1) % nb_components_per_line
#line_index = (full_index - 1) // nb_components_per_line
#line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
#full_index = 1 + len(components_to_plot) * line_index + col_index
pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
if (pivot_table is None):
print ("none", component)
# Do not create axes if no data to plot
#continue
vmax = 1.0
print(len(selected_paths))
print(len(components_to_plot))
line_index, col_index = path_index, component_index
full_index = 1 + (len(components_to_plot)) * line_index + col_index
print(line_index, component_index, full_index)
if (component_index != 3):
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index)
else:
#ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index, projection='3d')
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index)
#ax = fig.add_subplot(7, 6, full_index)
axes.append(ax)
if(line_index < len(selected_paths)-1 and component_index !=3 ):
ax.xaxis.set_ticks([])
elif(component_index < 3):
ax.set_xticks(x_positions)
ax.set_xticklabels(x_labels)
print(crystal_field)
#set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
if (component_index != 6):
to_plot_x = pivot_table.columns
to_plot_y = pivot_table.index.values
data = pivot_table.values
#######################################
#### Definition of the function to plot
#######################################
#to_plot_z = np.log10(data + 1e-5)
to_plot_z = data / (5.5 + data)
to_plot_z2 = data
#Z=to_plot_z
def f(x, y):
return np.absolute(data)
X=to_plot_x
Y=to_plot_y
X, Y = np.meshgrid(to_plot_x,to_plot_y)
Z = f(X, Y)
print(X.shape, Z.shape)
#print(X.shape)
#print(to_plot_x.shape)
#print(Z.shape)
#########################################
#### Plotting instruction with parameters
#########################################
if (component_index != 3):
im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
rasterized=True,
cmap=plt.get_cmap('jet'),
#cmap=plt.get_cmap('gist_stern_r'),
vmin=0, vmax=vmax
#vmax = min(40, np.amax(to_plot_z))
)
else:
norm = plt.Normalize(Z.min(), Z.max())
colors = cm.viridis(norm(Z))
rcount, ccount, _ = colors.shape
print(rcount, ccount)
if(path_index != 10):
#print(Z[:30, 95])
Z[:, 100] = 1.0 * (Z[:, 95])
#ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1, edgecolor='none')
#surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
# facecolors=colors, shade=False)
ax.set_ylim([0, 0.25])
#ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
ax.plot(wgrid, spectra, linewidth=3.2)
#surf.set_facecolor((0,0,0,0))
#ax.view_init(50, -40)
#fig.colorbar(im, ax=ax)
if (component_index == 0):
x_pos = [1.7, 1.7]
y_pos = [0.22, 0.22]
x_direct = moment_x[path_index]
y_direct = moment_z[path_index]
if(path_index != 0):
ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
#ax.axis([-2.5,2.5,-2.5,2.5])
text_size = 42
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
if (col_index == 3):
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
#for tick in ax.zaxis.get_major_ticks():
# tick.label.set_fontsize(text_size-28)
specw = np.zeros_like(to_plot_x)
for q_index in np.arange(to_plot_x.shape[0]):
specw[q_index] = np.trapz(to_plot_z2[:300, q_index], to_plot_y[:300])
if(path_index == 1 and q_index == 100):
specw[q_index] = specw[q_index - 1]
ax.plot(to_plot_x, specw/10.0, color='w', linewidth= 3.2)
if(component_index == 2):
ax.tick_params(labelleft=False,labeltop=False, labelright=True)
ax.tick_params(left=False,top=False, right=True, length=5, width=4)
elif(component_index == 0):
ax.tick_params(left=True,top=False, right=False, length=5, width=4)
if(component_index == 2):
ax.yaxis.set_label_position("right")
if (col_index > 0 and col_index < 2 and col_index !=3 ):
ax.yaxis.set_ticks([])# s_position('none')
elif(col_index !=3):
if(col_index == 0):
if(path_index ==1):
ax.text(0.55, 0.95, r"$T=$"+ str(temps[path_index]),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
else:
ax.text(0.62, 0.95, r"$T=$"+ str(temps[path_index]),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
#if(path_index < 2):
# ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#else:
# ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
if(col_index == 0):
ax.set_ylabel(r"Energy", fontsize=text_size+10)
elif(col_index == 2):
ax.set_ylabel(r"SW", fontsize=text_size+10)
if(col_index == 2):
ax.set_yticks(y_positions)
ax.set_yticklabels(y_labels, fontsize=text_size+10 )
if (col_index == 0):
#ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
pass
if (line_index < len(all_crystal_fields) - 1):
ax.xaxis.set_ticks([])# s_position('none')
#if (line_index == 0):
# ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
#########################################
#########################################
if(component_index == 6):
ax.set_yticks([0, 0.25])
ax.set_zticks([0, 10, 20, 30])
if(path_index == 0):
#plt.title(component, fontsize=50, pad=20)
#if(component_index == 3):
# plt.title(component, fontsize=50, pad=78)
ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
if(component_index == 3):
ax.set_title(component_names[component], fontsize=text_size+25, pad=92)
#full_index += 1
if (component_index != 3):
ax.set_ylim([0., 0.5])
#fig.tight_layout(pad=0.5)
#fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.01, hspace=0.05)
#else:
#fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.05)
if (component_index == 3):
ax.set_ylim([0, 2.0])
ax.set_xlim([-1.5, 1.5])
#ax.set_zlim([0, 30.0])
component_index += 1
#plt.subplots_adjust(left=0.125,bottom=0.1, right=0.9, top=0.9, wspace=0.1, hspace=0.1)
#plt.subplot_tool()
#plt.show()
#for i in np.arange(to_plot_x.shape[0]):
# print(i, to_plot_x[i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
0 0 1
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
0 1 2
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
0 2 3
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
1 0 4
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
1 1 5
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
1 2 6
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
2 0 7
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
2 1 8
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
2 2 9
3.4
(1001, 151) (1001, 151)
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold"][::1]
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
all_component_names = ['Na-Nb', 'Sz', 're_yy']
y_labels = [2, 4]
y_positions = [0.2, 0.4]
mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0
S_z = []
chi_ga = []
mh = []
selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2, 2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [ 30., 30.0, 30.0, 30.0, 30.0, 30.0][::1]
fields = [0.0, 0.05, 0.10, 0.20, 0.40]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
#moment_x = [ [0.74,0] ,[0.73, 0], [0.668,0], [0.3968,0],[0.01,0] ]
#moment_z = [[0, 0.01] ,[0, 0.222], [0, 0.431], [0, 0.793], [0, 0.531]]
moment_x = [ [0.74, -0.74] ,[0.73, -0.73], [0.668,-0.668], [0.3968,-0.3968], [0.,-0.] ]
moment_z = [[0.0, 0.0] ,[0.222, 0.222], [0.431, 0.431], [0.793, 0.793], [0.9984, 0.9984]]
fig = plt.figure(figsize = (len(selected_components) * 2.2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
#components_to_plot = all_components
full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
#components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
#components_to_plot = np.array(['im_xx0+im_xx1'])
if(site[path_index] == 1):
components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
#components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
#component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$Sz$", 're_xx': r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy': r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$S^z$", 're_xx': r"$R^x$", 'im_xx': r"$I^x$",'re_yy': r"$R^y$", 'im_yy': r"$I^y$" }
#component_names = { 're_xx': r"$R_x$", 'im_xx': r"$I_x$",'re_yy': r"$R_y$", 'im_yy': r"$I_y$" }
if(site[path_index] == 2):
components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$', '$S^z_{0}$'])
#components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
#component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0': r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$R^x$", 'im_xx0': r"$I^x$",'re_yy0': r"$\R^y$", 'im_yy0': r"$I^y$"}
component_names = { '$S^x_{0}$': r"$\chi^{xx}$", '$S^y_{0}$': r"$\chi^{yy}$", '$S^z_{0}$': r"$\chi^{zz}$"}
#print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
component_index = 0
for crystal_field in all_crystal_fields:
for component in components_to_plot:
mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
##beta = 30.0
beta = betas[path_index]
doping = 0
if(component_index != 3):
path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
else:
path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
all_dopings = np.sort(path_frame['doping'].unique())[::-1]
del_index = np.where(all_dopings==1.5)
all_dopings = np.delete(all_dopings, del_index)
all_mode_styles = np.sort(path_frame['mode_style'].unique())
all_components = np.sort(path_frame['component'].unique())
all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
nb_crytal_fields = len(all_crystal_fields)
all_betas = np.sort(path_frame['beta'].unique())[::-1]
print(selected_paths)
print(component)
#col_index = (full_index - 1) % nb_components_per_line
#line_index = (full_index - 1) // nb_components_per_line
#line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
#full_index = 1 + len(components_to_plot) * line_index + col_index
pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
if (pivot_table is None):
print ("none", component)
# Do not create axes if no data to plot
#continue
vmax = 1.0
print(len(selected_paths))
print(len(components_to_plot))
line_index, col_index = path_index, component_index
full_index = 1 + (len(components_to_plot)) * line_index + col_index
print(line_index, component_index, full_index)
if (component_index != 3):
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index)
else:
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index, projection='3d')
#ax = fig.add_subplot(7, 6, full_index)
axes.append(ax)
if(line_index < len(selected_paths)-1 and component_index !=3 ):
ax.xaxis.set_ticks([])
else:
ax.set_xticks(x_positions)
ax.set_xticklabels(x_labels)
print(crystal_field)
#set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
if (component_index != 6):
to_plot_x = pivot_table.columns
to_plot_y = pivot_table.index.values
data = pivot_table.values
#######################################
#### Definition of the function to plot
#######################################
#to_plot_z = np.log10(data + 1e-5)
to_plot_z = data / (5.5 + data)
to_plot_z2 = data
#Z=to_plot_z
def f(x, y):
return np.absolute(data)
X=to_plot_x
Y=to_plot_y
X, Y = np.meshgrid(to_plot_x,to_plot_y)
Z = f(X, Y)
print(X.shape, Z.shape)
#print(X.shape)
#print(to_plot_x.shape)
#print(Z.shape)
#########################################
#### Plotting instruction with parameters
#########################################
if (component_index != 3):
im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
rasterized=True,
cmap=plt.get_cmap('jet'),
#cmap=plt.get_cmap('gist_stern_r'),
vmin=0, vmax=vmax
#vmax = min(40, np.amax(to_plot_z))
)
else:
norm = plt.Normalize(Z.min(), Z.max())
colors = cm.viridis(norm(Z))
rcount, ccount, _ = colors.shape
print(rcount, ccount)
if(path_index != 10):
#print(Z[:30, 95])
Z[:, 100] = 1.0 * (Z[:, 95])
#ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1, edgecolor='none')
#surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
# facecolors=colors, shade=False)
ax.set_ylim([0, 0.25])
ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
#surf.set_facecolor((0,0,0,0))
ax.view_init(50, -40)
#fig.colorbar(im, ax=ax)
if (component_index == 0):
x_pos = [1.7, 1.7]
y_pos = [0.22, 0.2205]
x_direct = moment_x[path_index]
y_direct = moment_z[path_index]
ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
#ax.axis([-2.5,2.5,-2.5,2.5])
text_size = 42
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
if (col_index == 3):
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.zaxis.get_major_ticks():
tick.label.set_fontsize(text_size-28)
specw = np.zeros_like(to_plot_x)
for q_index in np.arange(to_plot_x.shape[0]):
specw[q_index] = np.trapz(to_plot_z2[:700, q_index], to_plot_y[:700])
if(path_index == 1 and q_index == 100):
specw[q_index] = specw[q_index - 1]
ax.plot(to_plot_x, specw/10.0 , color='w', linewidth= 3.2)
if(component_index == 2):
ax.tick_params(labelleft=False,labeltop=False, labelright=True)
ax.tick_params(left=False,top=False, right=True, length=5, width=4)
elif(component_index == 0):
ax.tick_params(left=True,top=False, right=False, length=5, width=4)
if(component_index == 2):
ax.yaxis.set_label_position("right")
if (col_index == 1 and col_index !=3 ):
ax.yaxis.set_ticks([])# s_position('none')
elif(col_index !=3):
if(col_index == 0):
if(path_index ==1 ):
ax.text(0.62, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
elif(path_index == 2):
ax.text(0.55, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
else:
ax.text(0.47, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
#if(path_index < 2):
# ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#else:
# ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
#ax.set_ylabel(r"Energy", fontsize=text_size+10)
if(col_index == 0):
ax.set_ylabel(r"Energy", fontsize=text_size+10)
elif(col_index == 2):
ax.set_ylabel(r"SW", fontsize=text_size+10)
if(col_index == 2):
ax.set_yticks(y_positions)
ax.set_yticklabels(y_labels, fontsize=text_size+10 )
if (col_index == 0):
#ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
pass
if (line_index < len(all_crystal_fields) - 1):
ax.xaxis.set_ticks([])# s_position('none')
#if (line_index == 0):
# ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
#########################################
#########################################
if(component_index == 3):
ax.set_yticks([0, 0.25])
ax.set_zticks([0, 10, 20, 30])
if(path_index == 0):
#plt.title(component, fontsize=50, pad=20)
#if(component_index == 3):
# plt.title(component, fontsize=50, pad=78)
ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
if(component_index == 3):
ax.set_title(component_names[component], fontsize=text_size+25, pad=92)
#full_index += 1
if (component_index != 3):
ax.set_ylim([0., 0.5])
if (component_index == 3):
ax.set_ylim([0, 0.25])
ax.set_zlim([0, 30.0])
if(component_index == 0):
chi_ga.append(specw[0])
S_z.append(moment_z[path_index][0])
mh.append(fields[path_index])
component_index += 1
#for i in np.arange(151):
# print(i, X[150, i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
0 0 1
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
0 1 2
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
0 2 3
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
1 0 4
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
1 1 5
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
1 2 6
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
2 0 7
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
2 1 8
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
2 2 9
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
3 0 10
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
3 1 11
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
3 2 12
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
4 0 13
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
4 1 14
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
4 2 15
3.4
(1001, 151) (1001, 151)
chi_ganw=[0.045, 0.185, 0.416, 0.799, 0.996]
plt.plot(mh, S_z, marker='x', label="Sz")
plt.plot(mh, chi_ga , marker = 's', label="SW(chi_xx(0))")
plt.plot(mh, chi_ganw , marker = 'd', label="SW(chi_xx(0)_new)")
plt.legend()
for i in np.arange(5):
print(mh[i], S_z[i], chi_ga[i])
0.0 0.0 0.006936623320473116 0.05 0.222 0.1471650414978263 0.1 0.431 0.3934357721251539 0.2 0.793 0.7432052127976498 0.4 0.9984 0.8800865611555331
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b"][::1]
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
all_component_names = ['Na-Nb', 'Sz', 're_yy']
y_labels = [2, 4]
y_positions = [0.2, 0.4]
mode_style = "1auc"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0
S_z = []
chi_ga = []
mh = []
selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2, 2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [ 30., 30.0, 30.0, 30.0, 30.0, 30.0][::1]
fields = [0.0, 0.05, 0.10, 0.20, 0.40]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
#moment_x = [ [0.74,0] ,[0.73, 0], [0.668,0], [0.3968,0],[0.01,0] ]
#moment_z = [[0, 0.01] ,[0, 0.222], [0, 0.431], [0, 0.793], [0, 0.531]]
moment_x = [ [0.74, -0.74] ,[0.73, -0.73], [0.668,-0.668], [0.3968,-0.3968], [0.,-0.] ]
moment_z = [[0.0, 0.0] ,[0.222, 0.222], [0.431, 0.431], [0.793, 0.793], [0.9984, 0.9984]]
fig = plt.figure(figsize = (len(selected_components) * 2.2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
#components_to_plot = all_components
full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
#components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
#components_to_plot = np.array(['im_xx0+im_xx1'])
if(site[path_index] == 1):
components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
#components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
#component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$Sz$", 're_xx': r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy': r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$S^z$", 're_xx': r"$R^x$", 'im_xx': r"$I^x$",'re_yy': r"$R^y$", 'im_yy': r"$I^y$" }
#component_names = { 're_xx': r"$R_x$", 'im_xx': r"$I_x$",'re_yy': r"$R_y$", 'im_yy': r"$I_y$" }
if(site[path_index] == 2):
#components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$', '$S^z_{0}$'])
components_to_plot = np.array(['Sx_0', 'Sy_0', 'Sz_0'])
#components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
#component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0': r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$R^x$", 'im_xx0': r"$I^x$",'re_yy0': r"$\R^y$", 'im_yy0': r"$I^y$"}
component_names = { '$S^x_{0}$': r"$\chi^{xx}$", '$S^y_{0}$': r"$\chi^{yy}$", '$S^z_{0}$': r"$\chi^{zz}$"}
component_names = { 'Sx_0': r"$\chi^{xx}$", 'Sy_0': r"$\chi^{yy}$", 'Sz_0': r"$\chi^{zz}$"}
#print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
component_index = 0
all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
for crystal_field in all_crystal_fields:
for component in components_to_plot:
mode_style = "1auc"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
##beta = 30.0
beta = betas[path_index]
doping = 0
if(component_index != 3):
path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
else:
path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
all_dopings = np.sort(path_frame['doping'].unique())[::-1]
del_index = np.where(all_dopings==1.5)
all_dopings = np.delete(all_dopings, del_index)
all_mode_styles = np.sort(path_frame['mode_style'].unique())
all_components = np.sort(path_frame['component'].unique())
all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
nb_crytal_fields = len(all_crystal_fields)
all_betas = np.sort(path_frame['beta'].unique())[::-1]
print(selected_paths)
print(component)
#col_index = (full_index - 1) % nb_components_per_line
#line_index = (full_index - 1) // nb_components_per_line
#line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
#full_index = 1 + len(components_to_plot) * line_index + col_index
pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
if (pivot_table is None):
print ("none", component)
# Do not create axes if no data to plot
#continue
vmax = 1.0
print(len(selected_paths))
print(len(components_to_plot))
line_index, col_index = path_index, component_index
full_index = 1 + (len(components_to_plot)) * line_index + col_index
print(line_index, component_index, full_index)
if (component_index != 3):
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index)
else:
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index, projection='3d')
#ax = fig.add_subplot(7, 6, full_index)
axes.append(ax)
if(line_index < len(selected_paths)-1 and component_index !=3 ):
ax.xaxis.set_ticks([])
else:
ax.set_xticks(x_positions)
ax.set_xticklabels(x_labels)
print(crystal_field)
#set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
if (component_index != 6):
to_plot_x = pivot_table.columns
to_plot_y = pivot_table.index.values
data = pivot_table.values
#######################################
#### Definition of the function to plot
#######################################
#to_plot_z = np.log10(data + 1e-5)
to_plot_z = data / (5.5 + data)
to_plot_z2 = data
#Z=to_plot_z
def f(x, y):
return np.absolute(data)
X=to_plot_x
Y=to_plot_y
X, Y = np.meshgrid(to_plot_x,to_plot_y)
Z = f(X, Y)
print(X.shape, Z.shape)
#print(X.shape)
#print(to_plot_x.shape)
#print(Z.shape)
#########################################
#### Plotting instruction with parameters
#########################################
if (component_index != 3):
im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
rasterized=True,
cmap=plt.get_cmap('jet'),
#cmap=plt.get_cmap('gist_stern_r'),
vmin=0, vmax=vmax
#vmax = min(40, np.amax(to_plot_z))
)
else:
norm = plt.Normalize(Z.min(), Z.max())
colors = cm.viridis(norm(Z))
rcount, ccount, _ = colors.shape
print(rcount, ccount)
if(path_index != 10):
#print(Z[:30, 95])
Z[:, 100] = 1.0 * (Z[:, 95])
#ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1, edgecolor='none')
#surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
# facecolors=colors, shade=False)
ax.set_ylim([0, 0.25])
ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
#surf.set_facecolor((0,0,0,0))
ax.view_init(50, -40)
#fig.colorbar(im, ax=ax)
if (component_index == 0):
x_pos = [1.7, 1.7]
y_pos = [0.22, 0.2205]
x_direct = moment_x[path_index]
y_direct = moment_z[path_index]
ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
#ax.axis([-2.5,2.5,-2.5,2.5])
text_size = 42
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
if (col_index == 3):
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.zaxis.get_major_ticks():
tick.label.set_fontsize(text_size-28)
specw = np.zeros_like(to_plot_x)
for q_index in np.arange(to_plot_x.shape[0]):
specw[q_index] = np.trapz(to_plot_z2[:700, q_index], to_plot_y[:700])
if(path_index == 1 and q_index == 100):
specw[q_index] = specw[q_index - 1]
ax.plot(to_plot_x, specw/10.0 , color='w', linewidth= 3.2)
if(component_index == 2):
ax.tick_params(labelleft=False,labeltop=False, labelright=True)
ax.tick_params(left=False,top=False, right=True, length=5, width=4)
elif(component_index == 0):
ax.tick_params(left=True,top=False, right=False, length=5, width=4)
if(component_index == 2):
ax.yaxis.set_label_position("right")
if (col_index == 1 and col_index !=3 ):
ax.yaxis.set_ticks([])# s_position('none')
elif(col_index !=3):
if(col_index == 0):
if(path_index ==1 ):
ax.text(0.62, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
elif(path_index == 2):
ax.text(0.55, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
else:
ax.text(0.47, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
#if(path_index < 2):
# ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#else:
# ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
#ax.set_ylabel(r"Energy", fontsize=text_size+10)
if(col_index == 0):
ax.set_ylabel(r"Energy", fontsize=text_size+10)
elif(col_index == 2):
ax.set_ylabel(r"SW", fontsize=text_size+10)
if(col_index == 2):
ax.set_yticks(y_positions)
ax.set_yticklabels(y_labels, fontsize=text_size+10 )
if (col_index == 0):
#ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
pass
if (line_index < len(all_crystal_fields) - 1):
ax.xaxis.set_ticks([])# s_position('none')
#if (line_index == 0):
# ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
#########################################
#########################################
if(component_index == 3):
ax.set_yticks([0, 0.25])
ax.set_zticks([0, 10, 20, 30])
if(path_index == 0):
#plt.title(component, fontsize=50, pad=20)
#if(component_index == 3):
# plt.title(component, fontsize=50, pad=78)
ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
if(component_index == 3):
ax.set_title(component_names[component], fontsize=text_size+25, pad=92)
#full_index += 1
if (component_index != 3):
ax.set_ylim([0., 0.5])
if (component_index == 3):
ax.set_ylim([0, 0.25])
ax.set_zlim([0, 30.0])
if(component_index == 0):
chi_ga.append(specw[0])
S_z.append(moment_z[path_index][0])
mh.append(fields[path_index])
component_index += 1
#for i in np.arange(151):
# print(i, X[150, i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv reading input file data_real_normal.csv ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sx_0 5 3 0 0 1 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sy_0 5 3 0 1 2 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sz_0 5 3 0 2 3 0 (1001, 201) (1001, 201) reading input file data_real_normal.csv reading input file data_real_normal.csv ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sx_0 5 3 1 0 4 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sy_0 5 3 1 1 5 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sz_0 5 3 1 2 6 0 (1001, 201) (1001, 201) reading input file data_real_normal.csv reading input file data_real_normal.csv ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sx_0 5 3 2 0 7 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sy_0 5 3 2 1 8 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sz_0 5 3 2 2 9 0 (1001, 201) (1001, 201) reading input file data_real_normal.csv reading input file data_real_normal.csv ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sx_0 5 3 3 0 10 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sy_0 5 3 3 1 11 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sz_0 5 3 3 2 12 0 (1001, 201) (1001, 201) reading input file data_real_normal.csv reading input file data_real_normal.csv ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sx_0 5 3 4 0 13 0 (1001, 201) (1001, 201) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sy_0 5 3 4 1 14 0 (1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b'] Sz_0 5 3 4 2 15 0 (1001, 174) (1001, 174)
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old",
"/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80"][::1]
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
all_component_names = ['Na-Nb', 'Sz', 're_yy']
y_labels = [2, 4]
y_positions = [0.2, 0.4]
mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0
selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2, 2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [ 25., 25.0, 25.0, 25.0, 25.0, 25.0][::1]
gammas =[1.20, 1.05, 1.00, 0.95, 0.80]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
#moment_x = [ [0.74,0] ,[0.73, 0], [0.668,0], [0.3968,0],[0.01,0] ]
#moment_z = [[0, 0.01] ,[0, 0.222], [0, 0.431], [0, 0.793], [0, 0.531]]
moment_x = [ [0.783, -0.783] ,[0.776, -0.776], [0.76,-0.76], [0.0,-0.0], [0.,-0.] ]
moment_z = [[0.0, 0.0] ,[0.0, 0.0], [0.0, -0.0], [0.799, -0.799], [0.857, -0.857]]
fig = plt.figure(figsize = (len(selected_components) * 2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
#components_to_plot = all_components
full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
#components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
#components_to_plot = np.array(['im_xx0+im_xx1'])
if(site[path_index] == 1):
components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
#components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
#component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$Sz$", 're_xx': r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy': r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
component_names = { 'N_a-N_b': r"$O$", 'Sz': r"$S^z$", 're_xx': r"$R^x$", 'im_xx': r"$I^x$",'re_yy': r"$R^y$", 'im_yy': r"$I^y$" }
#component_names = { 're_xx': r"$R_x$", 'im_xx': r"$I_x$",'re_yy': r"$R_y$", 'im_yy': r"$I_y$" }
if(site[path_index] == 2):
components_to_plot = np.array(['Sx0', 'Sy0', 'Sz0', ])
#components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
#component_names = { 'N_a0-N_b0': r"$O$", 'Sz0': r"$S^z$", 're_xx0': r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0': r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
component_names = { 'Sx0': r"$\chi^{xx}$", 'Sy0': r"$\chi^{yy}$", 'Sz0': r"$\chi^{zz}$" }
#component_names = { 're_xx0': r"$R_x$", 'im_xx0': r"$I_x$",'re_yy0': r"$\R_y$", 'im_yy0': r"$I_y$"}
print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
component_index = 0
for crystal_field in all_crystal_fields:
for component in components_to_plot:
mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
##beta = 30.0
beta = betas[path_index]
doping = 0
if(component_index != 3):
path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
else:
path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping)
+ '& beta == ' + str(beta)
+ ' & impurity_solver == "' + impurity_solver + '"'
+ ' & mode_style == "' + mode_style + '"')
all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
all_dopings = np.sort(path_frame['doping'].unique())[::-1]
del_index = np.where(all_dopings==1.5)
all_dopings = np.delete(all_dopings, del_index)
all_mode_styles = np.sort(path_frame['mode_style'].unique())
all_components = np.sort(path_frame['component'].unique())
all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
nb_crytal_fields = len(all_crystal_fields)
all_betas = np.sort(path_frame['beta'].unique())[::-1]
print(selected_paths)
print(component)
#col_index = (full_index - 1) % nb_components_per_line
#line_index = (full_index - 1) // nb_components_per_line
#line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
#full_index = 1 + len(components_to_plot) * line_index + col_index
pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
if (pivot_table is None):
print ("none", component)
# Do not create axes if no data to plot
#continue
vmax = 1.0
print(len(selected_paths))
print(len(components_to_plot))
line_index, col_index = path_index, component_index
full_index = 1 + (len(components_to_plot)) * line_index + col_index
print(line_index, component_index, full_index)
if (component_index != 3):
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index)
else:
ax = fig.add_subplot(len(selected_paths), len(components_to_plot), full_index, projection='3d')
#ax = fig.add_subplot(7, 6, full_index)
axes.append(ax)
if(line_index < len(selected_paths)-1 and component_index !=3 ):
ax.xaxis.set_ticks([])
else:
ax.set_xticks(x_positions)
ax.set_xticklabels(x_labels)
print(crystal_field)
#set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
if (component_index != 6):
to_plot_x = pivot_table.columns
to_plot_y = pivot_table.index.values
data = pivot_table.values
#######################################
#### Definition of the function to plot
#######################################
#to_plot_z = np.log10(data + 1e-5)
to_plot_z = data / (8.5 + data)
to_plot_z2 = data
#Z=to_plot_z
def f(x, y):
return np.absolute(data)
X=to_plot_x
Y=to_plot_y
X, Y = np.meshgrid(to_plot_x,to_plot_y)
Z = f(X, Y)
print(X.shape, Z.shape)
#print(X.shape)
#print(to_plot_x.shape)
#print(Z.shape)
#########################################
#### Plotting instruction with parameters
#########################################
if (component_index != 3):
im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
rasterized=True,
cmap=plt.get_cmap('jet'),
#cmap=plt.get_cmap('gist_stern_r'),
vmin=0, vmax=vmax
#vmax = min(40, np.amax(to_plot_z))
)
else:
norm = plt.Normalize(Z.min(), Z.max())
colors = cm.viridis(norm(Z))
rcount, ccount, _ = colors.shape
print(rcount, ccount)
if(path_index != 10):
#print(Z[:30, 95])
Z[:, 100] = 1.0 * (Z[:, 95])
#ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1, edgecolor='none')
#surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
# facecolors=colors, shade=False)
ax.set_ylim([0, 0.25])
ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
#surf.set_facecolor((0,0,0,0))
ax.view_init(50, -20)
#fig.colorbar(im, ax=ax)
if(path_index < 3):
if (component_index == 0):
x_pos = [1.7, 1.7]
y_pos = [0.22, 0.2205]
x_direct = moment_x[path_index]
y_direct = moment_z[path_index]
ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
#ax.axis([-2.5,2.5,-2.5,2.5])
else:
if (component_index == 2):
x_pos = [1.7, 1.7]
y_pos = [0.22, 0.2205]
x_direct = moment_x[path_index]
y_direct = moment_z[path_index]
ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
#ax.axis([-2.5,2.5,-2.5,2.5])
text_size = 42
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size+10)
if (col_index == 3):
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.zaxis.get_major_ticks():
tick.label.set_fontsize(text_size-28)
specw = np.zeros_like(to_plot_x)
for q_index in np.arange(to_plot_x.shape[0]):
specw[q_index] = np.trapz(to_plot_z2[:700, q_index], to_plot_y[:700])
if(path_index == 2 and q_index == 100):
specw[q_index] = specw[q_index - 1]
ax.plot(to_plot_x, specw/10.0, color='w', linewidth= 3.2)
if(component_index == 2):
ax.tick_params(labelleft=False,labeltop=False, labelright=True)
ax.tick_params(left=False,top=False, right=True, length=5, width=4)
elif(component_index == 0):
ax.tick_params(left=True,top=False, right=False, length=5, width=4)
if(component_index == 2):
ax.yaxis.set_label_position("right")
if (col_index > 0 and col_index !=3 ):
ax.yaxis.set_ticks([])# s_position('none')
elif(col_index !=3):
if(path_index ==1 or path_index == 3):
ax.text(0.55, 0.9, r"$\gamma=$"+ str(gammas[path_index]),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
else:
ax.text(0.47, 0.9, r"$\gamma=$"+ str(gammas[path_index]),
verticalalignment='top', horizontalalignment='right',
transform=ax.transAxes,
color='white', fontsize=50)
#if(path_index < 2):
# ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#else:
# ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
# verticalalignment='top', horizontalalignment='right',
# transform=ax.transAxes,
# color='white', fontsize=30)
#ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
ax.set_ylabel(r"Energy", fontsize=text_size+10)
if(col_index == 2):
ax.set_ylabel(r"SW", fontsize=text_size+10)
ax.set_yticks(y_positions)
ax.set_yticklabels(y_labels, fontsize=text_size+10 )
if (col_index == 0):
#ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
pass
if (line_index < len(all_crystal_fields) - 1):
ax.xaxis.set_ticks([])# s_position('none')
if (line_index == 0):
ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
#########################################
#########################################
if(component_index == 3):
ax.set_yticks([0, 0.25])
ax.set_zticks([0, 10, 20, 30])
if(path_index == 0):
#plt.title(component, fontsize=50, pad=20)
#f(component_index == 3):
# plt.title(component, fontsize=50, pad=78)
ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
#full_index += 1
if (component_index != 3):
ax.set_ylim([0., 0.5])
if (component_index == 3):
ax.set_ylim([0, 0.25])
ax.set_zlim([0, 30.0])
component_index += 1
#for i in np.arange(151):
# print(i, X[150, i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv reading input file data_real_normal.csv ['Sx0' 'Sy0' 'Sz0'] [30.] [3.4] [0] ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sx0 5 3 0 0 1 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sy0 5 3 0 1 2 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sz0 5 3 0 2 3 3.4 (1001, 151) (1001, 151) reading input file data_real_normal.csv reading input file data_real_normal.csv ['Sx0' 'Sy0' 'Sz0'] [25.] [3.4] [0] ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sx0 5 3 1 0 4 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sy0 5 3 1 1 5 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sz0 5 3 1 2 6 3.4 (1001, 151) (1001, 151) reading input file data_real_normal.csv reading input file data_real_normal.csv ['Sx0' 'Sy0' 'Sz0'] [25.] [3.4] [0] ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sx0 5 3 2 0 7 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sy0 5 3 2 1 8 3.4 (1001, 150) (1001, 150) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sz0 5 3 2 2 9 3.4 (1001, 151) (1001, 151) reading input file data_real_normal.csv reading input file data_real_normal.csv ['Sx0' 'Sy0' 'Sz0'] [25.] [3.4] [0] ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sx0 5 3 3 0 10 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sy0 5 3 3 1 11 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sz0 5 3 3 2 12 3.4 (1001, 151) (1001, 151) reading input file data_real_normal.csv reading input file data_real_normal.csv ['Sx0' 'Sy0' 'Sz0'] [25.] [3.4] [0] ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sx0 5 3 4 0 13 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sy0 5 3 4 1 14 3.4 (1001, 151) (1001, 151) ['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80'] Sz0 5 3 4 2 15 3.4 (1001, 151) (1001, 151)
selected_paths_sp = ["/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz0",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz4",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz8",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz16",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz32" ][::1]
fig = plt.figure(figsize = (1 * 1.9 * fig_width, len(selected_paths_sp) * 3.05 * fig_height), frameon=False)
import matplotlib as mpl
mpl.rcParams['axes.linewidth'] = 3.0 #set the value globally
for path_index in np.arange(len(selected_paths_sp)):
spectra = np.load(os.path.join(selected_paths_sp[path_index], "spectra.npy"))
wgrid = np.load(os.path.join(selected_paths_sp[path_index], "wgrid.npy"))
full_index = 1 + (1) * path_index + 0
ax = fig.add_subplot(5, 1, full_index)
ax.plot(wgrid, spectra, linewidth=3.2)
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size+40)
ax.tick_params(labelleft=False,labeltop=False, labelright=True, labelsize=40)
ax.tick_params(left=False,top=False, right=True, length=5, width=2)
ax.yaxis.set_label_position("right" )
if (path_index < 4 ):
ax.xaxis.set_ticks([])
if (path_index == 2 ):
ax.set_ylabel(r"Spectral Density", fontsize=text_size)
if (path_index == 4 ):
ax.set_xlabel(r"Energy", fontsize=text_size+10)
ax.set_ylim([-0.02, 2.4])
ax.set_xlim([-1.5, 1.5])
fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.045)
plt.show()
selected_paths_sp = ["/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b18",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b25Sx",
"/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz0"][::1]
import matplotlib as mpl
mpl.rcParams['axes.linewidth'] = 3.0 #set the value globally
fig = plt.figure(figsize = (1 * 1.9 * fig_width, len(selected_paths_sp) * 3.05 * fig_height), frameon=False)
for path_index in np.arange(len(selected_paths_sp)):
spectra = np.load(os.path.join(selected_paths_sp[path_index], "spectra.npy"))
wgrid = np.load(os.path.join(selected_paths_sp[path_index], "wgrid.npy"))
full_index = 1 + (1) * path_index + 0
ax = fig.add_subplot(3, 1, full_index)
ax.plot(wgrid, spectra, linewidth=3.2)
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(text_size-25)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(text_size+40)
ax.tick_params(labelleft=False,labeltop=False, labelright=True, labelsize=40)
ax.tick_params(left=False,top=False, right=True, length=5, width=2)
ax.yaxis.set_label_position("right" )
if (path_index < 2 ):
ax.xaxis.set_ticks([])
if (path_index == 1 ):
ax.set_ylabel(r"Spectral Density", fontsize=text_size)
if (path_index == 2 ):
ax.set_xlabel(r"Energy", fontsize=text_size+10)
ax.set_ylim([-0.02, 2.4])
ax.set_xlim([-1.5, 1.5])
fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.045)
plt.show()