In [1]:
import sympy as sym
import numpy as np
import matplotlib.pyplot as plt
In [22]:
N = 1001
x = np.linspace(0,6,N)

V = np.piecewise(x,
                [x<2.75, ((x>=2.75)&(x<3.25)), ((x>=3.25)&(x<4)), x>4],
                [lambda x: -4, 
                 lambda x: -4+20*(x-2.75),
                 lambda x: -4+20*(3.25-2.75),
                 lambda x: -4+20*(3.25-2.75)-3*(x-4)])

M = np.piecewise(x,
                [x<2.75, ((x>=2.75)&(x<3.25)), ((x>=3.25)&(x<4)), x>4],
                [lambda x: -4*x, 
                 lambda x: -4*x+20*(x-2.75)**2/2,
                 lambda x: -4*x+20*(3.25-2.75)*(x-3),
                 lambda x: -4*x+20*(3.25-2.75)*(x-3)-3*(x-4)**2/2])
In [23]:
%matplotlib inline

from matplotlib import rcParams

rcParams['font.size']=16
rcParams['mathtext.fontset']='cm'
In [29]:
fig = plt.figure()
ax1 = fig.add_axes([0.1,0.1,0.8,0.8])
ax2 = fig.add_axes([1.4,0.1,0.8,0.8])

ax1.plot(x,V,'blue')
ax1.set_xlabel(r'$x\;\; [{\rm m}]$',fontsize=20)
ax1.set_ylabel(r'$V\;\; [{\rm kN}]$',fontsize=20)
ax1.axhline(y=0,color='k')
ax1.axvline(x=0,color='k')
ax1.fill_between(x,V,color='blue',alpha=0.2)
ax1.set_xticks([0,2.75,3.25,4,6], minor=False)
ax1.set_xticklabels([0,2.75,3.25,4,6],rotation=90)
#ax1.set_yticks([6.5,4.5,0,-4.5], minor=False)
ax1.grid('True')

ax2.plot(x,M)
ax2.set_xlabel(r'$x\;\; [{\rm m}]$',fontsize=20)
ax2.set_ylabel(r'$M\;\; [{\rm kN}\cdot {\rm m}]$',fontsize=20)
ax2.axhline(y=0,color='k')
ax2.axvline(x=0,color='k')
ax2.fill_between(x,M,color='blue',alpha=0.2)
ax2.set_xticks([0,2.75,3.25,4,6], minor=False)
ax2.set_xticklabels([0,2.75,3.25,4,6],rotation=90)
ax2.set_yticks([0, min(M), max(M)], minor=False)
ax2.set_yticklabels([0, min(M), max(M)])
ax2.grid(True)
In [ ]: