Introduction
Introduction Statistics Contact Development Disclaimer Help
tuse seaborn to improve figures - sphere - GPU-based 3D discrete element method…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit e05f1f05655a65d9f3920854b5e072c227285260
parent 90c69f56c42d99b499c64fc131309115f962253a
Author: Anders Damsgaard <[email protected]>
Date: Tue, 14 Apr 2015 14:59:48 +0200
use seaborn to improve figures
Diffstat:
M python/halfshear-darcy-strain.py | 8 +++++---
M python/halfshear-darcy-strength-di… | 150 +++++++++++++++++++++------…
2 files changed, 109 insertions(+), 49 deletions(-)
---
diff --git a/python/halfshear-darcy-strain.py b/python/halfshear-darcy-strain.py
t@@ -14,6 +14,8 @@ import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
import seaborn as sns
+#sns.set(style='ticks', palette='Set2')
+#sns.set(style='ticks', palette='colorblind')
sns.set(style='ticks', palette='Set2')
sns.despine() # remove chartjunk
t@@ -113,11 +115,11 @@ for s in numpy.arange(len(cvals)):
if cvals[s] == 'dry':
legend = 'dry'
elif cvals[s] == 3.5e-13:
- legend = 'wet, relatively permeable'
+ legend = 'wet, high permeability'
elif cvals[s] == 3.5e-14:
legend = 'wet, intermediate permeability'
elif cvals[s] == 3.5e-15:
- legend = 'wet, relatively impermeable'
+ legend = 'wet, low permeability'
else:
legend = 'wet, $k_c$ = ' + str(cvals[s]) + ' m$^2$'
t@@ -179,7 +181,7 @@ ax[0].legend(handles[::-1], labels[::-1], loc='best')
#ax[0].legend(loc='best')
#ax[0].grid()
#ax[0].set_xlim([-0.05, 1.01])
-ax[0].set_xlim([-0.05, 1.04])
+ax[0].set_xlim([-0.05, 1.05])
#ax[0].set_ylim([0.0, 0.47])
ax[0].set_ylim([0.20, 0.47])
plt.tight_layout()
diff --git a/python/halfshear-darcy-strength-dilation-rate.py b/python/halfshea…
t@@ -14,8 +14,11 @@ from permeabilitycalculator import *
import matplotlib.pyplot as plt
import seaborn as sns
-sns.set(style='ticks', palette='Set2')
-sns.despine() # remove chartjunk
+#sns.set(style='ticks', palette='Set2')
+sns.set(style='ticks', palette='colorblind')
+#sns.set(style='ticks', palette='muted')
+#sns.set(style='ticks', palette='pastel')
+sns.despine() # remove right and top spines
pressures = True
zflow = False
t@@ -48,6 +51,7 @@ fluid=True
# wet shear
for c in numpy.arange(0,len(mu_f_vals)):
+#for c in numpy.arange(len(mu_f_vals)-1, -1, -1):
mu_f = mu_f_vals[c]
# halfshear-darcy-sigma0=20000.0-k_c=3.5e-13-mu=1.797e-06-velfac=1.0-shear
t@@ -58,43 +62,56 @@ for c in numpy.arange(0,len(mu_f_vals)):
if os.path.isfile('../output/' + sid + '.status.dat'):
sim = sphere.sim(sid, fluid=fluid)
- shear_strain[c] = numpy.zeros(sim.status())
+ n = sim.status()
+ #n = 20
+ shear_strain[c] = numpy.zeros(n)
friction[c] = numpy.zeros_like(shear_strain[c])
dilation[c] = numpy.zeros_like(shear_strain[c])
+ '''
sim.readlast(verbose=False)
- sim.visualize('shear')
+ #sim.visualize('shear')
shear_strain[c] = sim.shear_strain
#shear_strain[c] = numpy.arange(sim.status()+1)
- #friction[c] = sim.tau/sim.sigma_eff
- friction[c] = sim.tau/1000.0#/sim.sigma_eff
+ #friction[c] = sim.tau/1000.0#/sim.sigma_eff
+ friction[c] = sim.shearStress('effective')/sim.currentNormalStress('de…
dilation[c] = sim.dilation
+ '''
# fluid pressures and particle forces
- if pressures or contact_forces:
- p_mean[c] = numpy.zeros_like(shear_strain[c])
- p_min[c] = numpy.zeros_like(shear_strain[c])
- p_max[c] = numpy.zeros_like(shear_strain[c])
- f_n_mean[c] = numpy.zeros_like(shear_strain[c])
- f_n_max[c] = numpy.zeros_like(shear_strain[c])
- for i in numpy.arange(sim.status()):
- if pressures:
- sim.readstep(i, verbose=False)
- iz_top = int(sim.w_x[0]/(sim.L[2]/sim.num[2]))-1
- p_mean[c][i] = numpy.mean(sim.p_f[:,:,0:iz_top])/1000
- p_min[c][i] = numpy.min(sim.p_f[:,:,0:iz_top])/1000
- p_max[c][i] = numpy.max(sim.p_f[:,:,0:iz_top])/1000
-
- if contact_forces:
- sim.findNormalForces()
- f_n_mean[c][i] = numpy.mean(sim.f_n_magn)
- f_n_max[c][i] = numpy.max(sim.f_n_magn)
+ p_mean[c] = numpy.zeros_like(shear_strain[c])
+ p_min[c] = numpy.zeros_like(shear_strain[c])
+ p_max[c] = numpy.zeros_like(shear_strain[c])
+ f_n_mean[c] = numpy.zeros_like(shear_strain[c])
+ f_n_max[c] = numpy.zeros_like(shear_strain[c])
+
+ for i in numpy.arange(n):
+
+ sim.readstep(i, verbose=False)
+
+ shear_strain[c][i] = sim.shearStrain()
+ friction[c][i] = sim.shearStress('effective')/sim.currentNormalStr…
+ dilation[c][i] = sim.w_x[0]
+
+ if pressures:
+ iz_top = int(sim.w_x[0]/(sim.L[2]/sim.num[2]))-1
+ p_mean[c][i] = numpy.mean(sim.p_f[:,:,0:iz_top])/1000
+ p_min[c][i] = numpy.min(sim.p_f[:,:,0:iz_top])/1000
+ p_max[c][i] = numpy.max(sim.p_f[:,:,0:iz_top])/1000
+
+ if contact_forces:
+ sim.findNormalForces()
+ f_n_mean[c][i] = numpy.mean(sim.f_n_magn)
+ f_n_max[c][i] = numpy.max(sim.f_n_magn)
if zflow:
v_f_z_mean[c] = numpy.zeros_like(shear_strain[c])
- for i in numpy.arange(sim.status()):
+ for i in numpy.arange(n):
v_f_z_mean[c][i] = numpy.mean(sim.v_f[:,:,:,2])
+ dilation[c] =\
+ (dilation[c] - dilation[c][0])/(numpy.mean(sim.radius)*2.0)
+
else:
print(sid + ' not found')
t@@ -105,7 +122,8 @@ for c in numpy.arange(0,len(mu_f_vals)):
if zflow or pressures:
- fig = plt.figure(figsize=(8,10))
+ #fig = plt.figure(figsize=(8,10))
+ fig = plt.figure(figsize=(3.74, 2*3.74))
else:
fig = plt.figure(figsize=(8,8)) # (w,h)
#fig = plt.figure(figsize=(8,12))
t@@ -133,7 +151,10 @@ alpha = 1.0
#color = ['b','g','r','c']
#color = ['g','r','c']
-for c, mu_f in enumerate(mu_f_vals):
+color = sns.color_palette()
+#for c, mu_f in enumerate(mu_f_vals):
+for c in numpy.arange(len(mu_f_vals)-1, -1, -1):
+ mu_f = mu_f_vals[c]
if numpy.isclose(mu_f, 1.797e-6):
label = 'ref. shear velocity'
t@@ -145,27 +166,29 @@ for c, mu_f in enumerate(mu_f_vals):
#label = '$\\mu_\\text{{f}}$ = {:.3e} Pa s'.format(mu_f)
label = 'ref. shear velocity$\\times${:.2}'.format(mu_f/mu_f_vals[0])
- ax1.plot(shear_strain[c][1:], friction[c][1:], \
+ ax1.plot(shear_strain[c], friction[c], \
label=label, linewidth=1,
alpha=alpha, color=color[c])
- ax2.plot(shear_strain[c][1:], dilation[c][1:], \
+ ax2.plot(shear_strain[c], dilation[c], \
label=label, linewidth=1,
color=color[c])
if zflow:
- ax3.plot(shear_strain[c][1:], v_f_z_mean[c][1:],
+ ax3.plot(shear_strain[c], v_f_z_mean[c],
label=label, linewidth=1)
if pressures:
- ax3.plot(shear_strain[c][1:], p_max[c][1:], '-' + color[c], alpha=0.5)
- #ax3.plot(shear_strain[c][1:], p_mean[c][1:], '-' + color[c], \
- #label=label, linewidth=1)
- ax3.plot(shear_strain[c][1:], p_min[c][1:], '-' + color[c], alpha=0.5)
+ #ax3.plot(shear_strain[c][1:], p_max[c][1:], '-', color=color[c],
+ #alpha=0.5)
+ ax3.plot(shear_strain[c], p_mean[c], '-', color=color[c], \
+ label=label, linewidth=1)
+ #ax3.plot(shear_strain[c][1:], p_min[c][1:], '-', color=color[c],
+ #alpha=0.5)
- ax3.fill_between(shear_strain[c][1:], p_min[c][1:], p_max[c][1:],
- where=p_min[c][1:]<=p_max[c][1:], facecolor=color[c],
- interpolate=True, alpha=0.5)
+ #ax3.fill_between(shear_strain[c][1:], p_min[c][1:], p_max[c][1:],
+ #where=p_min[c][1:]<=p_max[c][1:], facecolor=color[c],
+ #interpolate=True, alpha=0.5)
#ax4.plot(shear_strain[c][1:], f_n_mean[c][1:], '-' + color[c],
#label='$c$ = %.2f' % (cvals[c-1]), linewidth=2)
t@@ -178,8 +201,8 @@ if zflow or pressures:
else:
ax2.set_xlabel('Shear strain $\\gamma$ [-]')
-#ax1.set_ylabel('Shear friction $\\tau/\\sigma\'$ [-]')
-ax1.set_ylabel('Shear stress $\\tau$ [kPa]')
+ax1.set_ylabel('Shear friction $\\tau/\\sigma_0$ [-]')
+#ax1.set_ylabel('Shear stress $\\tau$ [kPa]')
ax2.set_ylabel('Dilation $\\Delta h/(2r)$ [-]')
if zflow:
ax3.set_ylabel('$\\boldsymbol{v}_\\text{f}^z h$ [ms$^{-1}$]')
t@@ -204,9 +227,42 @@ if zflow or pressures:
#ax4.grid()
'''
-legend_alpha=0.5
-ax1.legend(loc='upper right', prop={'size':18}, fancybox=True,
- framealpha=legend_alpha)
+
+# remove box at top and right
+ax1.spines['top'].set_visible(False)
+ax1.spines['bottom'].set_visible(False)
+ax1.spines['right'].set_visible(False)
+#ax1.spines['left'].set_visible(True)
+# remove ticks at top and right
+ax1.get_xaxis().set_ticks_position('none')
+ax1.get_yaxis().set_ticks_position('none')
+ax1.get_yaxis().tick_left()
+ax1.get_xaxis().grid(True, linestyle='--', linewidth=0.5)
+
+# remove box at top and right
+ax2.spines['top'].set_visible(False)
+ax2.spines['right'].set_visible(False)
+ax2.spines['bottom'].set_visible(False)
+# remove ticks at top and right
+ax2.get_xaxis().set_ticks_position('none')
+ax2.get_yaxis().set_ticks_position('none')
+ax2.get_yaxis().tick_left()
+ax2.get_xaxis().grid(True, linestyle='--', linewidth=0.5)
+
+# remove box at top and right
+ax3.spines['top'].set_visible(False)
+ax3.spines['right'].set_visible(False)
+# remove ticks at top and right
+ax3.get_xaxis().set_ticks_position('none')
+ax3.get_yaxis().set_ticks_position('none')
+ax3.get_xaxis().tick_bottom()
+ax3.get_yaxis().tick_left()
+ax3.get_xaxis().grid(True, linestyle='--', linewidth=0.5)
+
+ax1.legend(loc='best')
+#legend_alpha=0.5
+#ax1.legend(loc='upper right', prop={'size':18}, fancybox=True,
+ #framealpha=legend_alpha)
#ax2.legend(loc='lower right', prop={'size':18}, fancybox=True,
#framealpha=legend_alpha)
#if zflow or pressures:
t@@ -219,19 +275,21 @@ ax1.legend(loc='upper right', prop={'size':18}, fancybox…
#ax2.set_xlim([0.0, 0.09])
#ax2.set_xlim([0.0, 0.2])
-ax1.set_ylim([-7, 45])
+#ax1.set_ylim([-7, 45])
ax2.set_ylim([0.0, 0.8])
#ax1.set_ylim([0.0, 1.0])
-if pressures:
+#if pressures:
#ax3.set_ylim([-1400, 900])
- ax3.set_ylim([-200, 200])
+ #ax3.set_ylim([-200, 200])
#ax3.set_xlim([0.0, 0.09])
plt.tight_layout()
-plt.subplots_adjust(hspace=0.05)
+#plt.subplots_adjust(hspace=0.05)
+plt.subplots_adjust(hspace=0.15)
#filename = 'shear-' + str(int(sigma0/1000.0)) + 'kPa-stress-dilation.pdf'
filename = 'halfshear-darcy-rate.pdf'
#print(os.getcwd() + '/' + filename)
plt.savefig(filename)
shutil.copyfile(filename, '/home/adc/articles/own/2/graphics/' + filename)
+plt.close()
print(filename)
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.