In [18]:
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.colors import LightSource
from matplotlib import cm
from matplotlib import pyplot as plt
import numpy as np

In [31]:
x = np.linspace(-5, 5, num=50)
y = np.linspace(-5, 5, num=50)
xx, yy = np.meshgrid(x, y)
z = 1.0 / (1.0 + xx**2 + yy**2)

In [32]:
ls = LightSource(270, 45)
rgb = ls.shade(z, blend_mode='soft', cmap=cm.coolwarm)
illuminated_surface = ls.shade(z, cmap=cm.coolwarm)

In [33]:
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(xx, yy, z, rstride=1, cstride=1, linewidth=0, facecolors=illuminated_surface, antialiased=True)
plt.show()



In [ ]: