# Python-Script for plotting the data of the uniaxial compression
# experiments

import matplotlib.pyplot as plt
from matplotlib import style
style.use('ggplot')

import numpy as np
# -----------------------------------------

# All data:

strain_Sand_001,stress_Sand_001= np.loadtxt('Sand_001_stress_strain_results.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 4,
        usecols = (0,1))

strain_Sand_002,stress_Sand_002= np.loadtxt('Sand_002_stress_strain_results.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 4,
        usecols = (0,1))

strain_Sand_003,stress_Sand_003= np.loadtxt('Sand_003_stress_strain_results.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 4,
        usecols = (0,1))
# ----------
strain_Glass_beads_001,stress_Glass_beads_001= np.loadtxt('Glass_beads_001_stress_strain_results.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 4,
        usecols = (0,1))

strain_Glass_beads_002,stress_Glass_beads_002= np.loadtxt('Glass_beads_002_stress_strain_results.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 4,
        usecols = (0,1))

strain_Glass_beads_003,stress_Glass_beads_003= np.loadtxt('Glass_beads_003_stress_strain_results.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 4,
        usecols = (0,1))
# -----------------------------------------

# Data (points) after CT-scans:

strain_CT_Sand_001,vol_strain_CT_Sand_001,stress_CT_Sand_001= np.loadtxt('Sand_001_stress_strain_results_after_scans.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 6,
        usecols = (0,1,2))

strain_CT_Sand_002,vol_strain_CT_Sand_002,stress_CT_Sand_002= np.loadtxt('Sand_002_stress_strain_results_after_scans.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 6,
        usecols = (0,1,2))

strain_CT_Sand_003,vol_strain_CT_Sand_003,stress_CT_Sand_003= np.loadtxt('Sand_003_stress_strain_results_after_scans.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 6,
        usecols = (0,1,2))
# ----------
strain_CT_Glass_beads_001,vol_strain_CT_Glass_beads_001,stress_CT_Glass_beads_001= np.loadtxt('Glass_beads_001_stress_strain_results_after_scans.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 6,
        usecols = (0,1,2))

strain_CT_Glass_beads_002,vol_strain_CT_Glass_beads_002,stress_CT_Glass_beads_002= np.loadtxt('Glass_beads_002_stress_strain_results_after_scans.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 6,
        usecols = (0,1,2))

strain_CT_Glass_beads_003,vol_strain_CT_Glass_beads_003,stress_CT_Glass_beads_003= np.loadtxt('Glass_beads_003_stress_strain_results_after_scans.txt',
        unpack = True,
        delimiter = ',',
        skiprows = 6,
        usecols = (0,1,2))

# -----------------------------------------
plot1 = plt.figure(1)
ax = plt.gca()
ax.patch.set_facecolor('white')


plt.plot(strain_Sand_001,stress_Sand_001,
                label = ('Sand, test 1'),
                linestyle='-',
                color = 'b',
                marker = 'None',
                markerfacecolor = 'b',
                markeredgecolor = 'b',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_Sand_002,stress_Sand_002,
                label = ('Sand, test 2'),
                linestyle='-',
                color = 'g',
                marker = 'None',
                markerfacecolor = 'g',
                markeredgecolor = 'g',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_Sand_003,stress_Sand_003,
                label = ('Sand, test 3'),
                linestyle='-',
                color = 'r',
                marker = 'None',
                markerfacecolor = 'r',
                markeredgecolor = 'r',
                markersize = 5.0,
                linewidth = 1.0)
# -----

plt.plot(strain_Glass_beads_001,stress_Glass_beads_001,
                label = ('Glass beads, test 1'),
                linestyle='--',
                color = 'b',
                marker = 'None',
                markerfacecolor = 'b',
                markeredgecolor = 'b',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_Glass_beads_002,stress_Glass_beads_002,
                label = ('Glass beads, test 2'),
                linestyle='--',
                color = 'g',
                marker = 'None',
                markerfacecolor = 'g',
                markeredgecolor = 'g',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_Glass_beads_003,stress_Glass_beads_003,
                label = ('Glass beads, test 3'),
                linestyle='--',
                color = 'r',
                marker = 'None',
                markerfacecolor = 'r',
                markeredgecolor = 'r',
                markersize = 5.0,
                linewidth = 1.0)
# -----
# -----
plt.plot(strain_CT_Sand_001,stress_CT_Sand_001,
                label = (''),
                linestyle='None',
                color = 'k',
                marker = 's',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_CT_Sand_002,stress_CT_Sand_002,
                label = (''),
                linestyle='None',
                color = 'k',
                marker = 's',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_CT_Sand_003,stress_CT_Sand_003,
                label = (''),
                linestyle='None',
                color = 'k',
                marker = 's',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)
# -----

plt.plot(strain_CT_Glass_beads_001,stress_CT_Glass_beads_001,
                label = (''),
                linestyle='None',
                color = 'k',
                marker = 'o',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_CT_Glass_beads_002,stress_CT_Glass_beads_002,
                label = (''),
                linestyle='None',
                color = 'k',
                marker = 'o',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_CT_Glass_beads_003,stress_CT_Glass_beads_003,
                label = (''),
                linestyle='None',
                color = 'k',
                marker = 'o',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)
          
# -----------------------
plt.title('Axial stress vs. axial strain')
plt.xlabel('Axial strain [-]')
plt.ylabel('Axial stress [kPa]')
plt.legend(loc='upper right', facecolor='white', framealpha=1)
plt.grid(True,color='k',linestyle='--')
plt.xlim((0, 0.16))
plt.ylim((-0.1, 2.0))

plot1.set_size_inches(18/2.54,14/2.54)

plot1.show()
plot1.savefig('axial_stress_vs_axial_strain.png')

# -----------------------------------------
plot2 = plt.figure(2)
ax = plt.gca()
ax.patch.set_facecolor('white')


plt.plot(strain_CT_Sand_001,vol_strain_CT_Sand_001,
                label = ('Sand, test 1'),
                linestyle='-',
                color = 'b',
                marker = 's',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_CT_Sand_002,vol_strain_CT_Sand_002,
                label = ('Sand, test 2'),
                linestyle='-',
                color = 'g',
                marker = 's',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_CT_Sand_003,vol_strain_CT_Sand_003,
                label = ('Sand, test 3'),
                linestyle='-',
                color = 'r',
                marker = 's',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)
# -----

plt.plot(strain_CT_Glass_beads_001,vol_strain_CT_Glass_beads_001,
                label = ('Glass beads, test 1'),
                linestyle='--',
                color = 'b',
                marker = 'o',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_CT_Glass_beads_002,vol_strain_CT_Glass_beads_002,
                label = ('Glass beads, test 2'),
                linestyle='--',
                color = 'g',
                marker = 'o',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)

plt.plot(strain_CT_Glass_beads_003,vol_strain_CT_Glass_beads_003,
                label = ('Glass beads, test 3'),
                linestyle='--',
                color = 'r',
                marker = 'o',
                markerfacecolor = 'None',
                markeredgecolor = 'k',
                markersize = 5.0,
                linewidth = 1.0)
          
# -----------------------
plt.title('Volumetric strain vs. axial strain')
plt.xlabel('Axial strain [-]')
plt.ylabel('Volumetric strain [-]')
plt.legend(loc='upper left', facecolor='white', framealpha=1)
plt.grid(True,color='k',linestyle='--')

plt.xlim((0, 0.16))
plt.ylim((0.05, -0.15))

plot2.set_size_inches(18/2.54,14/2.54)

plot2.show()
plot2.savefig('volumetric_strain_vs_axial_strain.png')






  
