I am trying to make 3-D “curtain” plots. Basically, x,y are N-vectors, z is an M-vector, and C is MxN data set collected on the path with z. Application is a ship’s track through the ocean. I also want to be able to contour a second variable C2 also MxN. I know how to do that, but the example below just uses plot3D, because thats how I do the curtain contouring.
If I plot three such “curtains” they look OK, including the magenta line in each.
If I plot a fourth, the magenta line is obscured by the curtain, and so on for more curtains.
Any clue what the problem is? The code for this example is below, and I think is self contained, plus or minus running in pylab.
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
fig = figure()
for Nn in array([3,4]):
ax = fig.add_subplot(2,1,n,projection=‘3d’)
for off in arange(0,Nn*2,2)*50.:
x = np.arange(-5, 5, .5) y = np.arange(-5, 5, .5) Z = np.arange(0,200,1) Z=np.tile(np.reshape(Z,(200,1)),(1,size(y))) X = np.tile(y,(200,1)) Y = np.tile(y,(200,1)) N = X*Y*Z N = N/N.max() # normalize 0..1 surf = ax.plot_surface( X+off, Y, Z, rstride=20, cstride=4, facecolors=cm.jet(N), linewidth=0, antialiased=False, shade=False,alpha=0.9) ax.plot(x+off+0.001,y,(y+5)*25.,'m') ax.set_xlim([-50,350]) ax.set_ylim([-8.,8.]) fig.savefig('doc/bad3dslices.png',res=72)