#http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#surface-plots
#http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#contour-plots

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
from  matplotlib.pyplot import *
from numpy import *


x = arange(-15, 15, 0.25)
y = arange(-15, 15, 0.25)
X, Y = meshgrid(x, y)
R = sqrt(X**2 + Y**2)
Z = -.4 + (X+15)/30. + (Y+15)/40.+.5*sin(R)



figure(1)
CS = contour(X, Y, Z, camp=cm.coolwarm)
clabel(CS, inline=1, fontsize=10)
title('Contour plot')



fig = figure(2)
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)
ax.set_zlim(-2.01, 2.01)

ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

fig.colorbar(surf, shrink=0.5, aspect=5)

fig = figure(3)
ax = fig.gca()    
heatmap = ax.imshow(Z, cmap = cm.coolwarm)    
fig.colorbar(heatmap, shrink = 0.5, aspect=5)

show()