Hi:

I’m trying to get a semilog 3D plot. I want to plot several 2D time series lines, with the third axis being on a log scale. I am trying to set an axis to log using ax.set_yscale(‘log’), but am getting errors. Is this possible?

I keep getting numpy errors when I try:

raise MaskError, ‘Cannot convert masked element to a Python int.’

numpy.ma.core.MaskError: Cannot convert masked element to a Python int.

My attempt:

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

import numpy as np

fig = plt.figure()

#ax = fig.gca()

ax = Axes3D(fig)

colors = (‘r’, ‘g’, ‘b’, ‘k’)

zd = (0., 1., 2., 3.)

T2 = (0.9, .8, .7, .6)

ic = 1

for ic in xrange(len(colors)):

x = np.arange(0.05,1,.005)

z = np.exp(-x/T2[ic]) + np.random.normal(0, .05, len(x))

y = np.exp(zd[ic])*np.ones(len(x))

ax.plot(x,y,z)

# Error if uncommented

#ax.set_yscale(‘log’)

plt.show()

Thanks for any insight.