import matplotlib
matplotlib.use('WXAgg')
from matplotlib import cm
import matplotlib.pyplot as plt

import numpy as np
import CoolProp
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize = (2,2))
ax = fig.add_subplot(111, projection='3d')

NT = 1000
NR = 1000
rho,t = np.logspace(np.log10(2e-3), np.log10(1100), NR),np.linspace(275.15,700,NT)
RHO,T = np.meshgrid(rho,t)

P = CoolProp.CoolProp.PropsSI('P','D',RHO.reshape((NR*NT,1)),'T',T.reshape((NR*NT,1)),'REFPROP-Water').reshape(NT,NR)

Tsat = np.linspace(273.17,647.0,100)
psat = CoolProp.CoolProp.PropsSI('P','Q',0,'T',Tsat,'Water')
rhoL = CoolProp.CoolProp.PropsSI('D','Q',0,'T',Tsat,'Water')
rhoV = CoolProp.CoolProp.PropsSI('D','Q',1,'T',Tsat,'Water')

ax.plot_surface(np.log(RHO),T,np.log(P), cmap=cm.jet, edgecolor = 'none')
ax.plot(np.log(rhoL),Tsat,np.log(psat),color='k',lw=2)
ax.plot(np.log(rhoV),Tsat,np.log(psat),color='k',lw=2)

ax.text(0.3,800,22, "CoolProp", size = 12)
ax.set_frame_on(False)
ax.set_axis_off()
ax.view_init(22, -136)
ax.set_xlabel(r'$\ln\rho$ ')
ax.set_ylabel('$T$')
ax.set_zlabel('$p$')
plt.tight_layout()
plt.savefig('_static/PVTCP.png',transparent = True)
plt.savefig('_static/PVTCP.pdf',transparent = True)
plt.close()