from numpy import linspace, append
from matplotlib.pyplot import *
from mpl_toolkits.axes_grid.axislines import SubplotZero
fig = figure(figsize=(4,4))
ax = SubplotZero(fig,111)
fig.add_subplot(ax)
ax.grid(True)
ax.set_ylim(-1,15)
ax.set_xlim(-1,15)
ax.set_yticklabels([])
ax.set_xticklabels([])
for direction in ["xzero","yzero"]:
ax.axis[direction].set_axisline_style("-|>")
ax.axis[direction].set_visible(True)
for direction in ["left","right","bottom","top"]:
ax.axis[direction].set_visible(False)
N, k, steps = 6.023e23, 1.38e-23, 100 # Avogadro number and Boltzmann const.
def gas_law(t):
return N*k*t
V = linspace(1./steps,15,steps)
for T in [1, 2, 4, 6, 8, 10]:
P = []
for x in V:
P = append(P,gas_law(T)/x)
ax.plot(V,P,'b')
ax.text(15,-1,r"V")
ax.text(-1,15,r"P")
fig.savefig("Ideal_gas_isotherms.svg",bbox_inches="tight",\
pad_inches=.15)