Ask Your Question

galmeida2007's profile - activity

2020-12-10 23:01:12 +0100 received badge  Famous Question (source)
2019-02-21 00:43:10 +0100 received badge  Popular Question (source)
2019-02-21 00:43:10 +0100 received badge  Notable Question (source)
2016-11-04 17:36:09 +0100 received badge  Good Question (source)
2016-11-04 15:57:57 +0100 received badge  Nice Question (source)
2016-11-04 12:40:10 +0100 received badge  Student (source)
2016-11-04 08:36:05 +0100 asked a question How to add tick marks or control them in the frame of 3d plots?

Apparently there is no way to add tick marks or control their spacing in the frame box for 3d plots as you can do it in 2d plots. There is no ticks option. There is no axis with ticks option. No control over axes labels neither.

I found a way to do so as in the following code (But I cannot interact with the plot as rotating and zooming with the mouse as can be done with sage 3d plots. I would like to have frame tick marks and grid lines, and axis labels as in the graph generated by this code):

from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import axes3d
x,y,z=var('x,y,z')

# Next we define the parameters
sigma=10
rho=28
beta=8/3

# The Lorenz equations
lorenz=[sigma*(y-x),x*(rho-z)-y,x*y-beta*z]

# Time and initial conditions
N=250000
tmax=250
h=tmax/N
t=srange(0,tmax+h,h)
ics=[0,1,1]
sol=desolve_odeint(lorenz,ics,t,[x,y,z],rtol=1e-13,atol=1e-14)
X=sol[:,0]
Y=sol[:,1]
Z=sol[:,2]
# Plot the result
from mpl_toolkits.mplot3d import axes3d
from matplotlib import pyplot as plt
# Call the plot function if you want to plot the data
def plot():
    fig = plt.figure(1)
    ax = fig.add_subplot(111, projection='3d')
    ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
    ax.set_xlabel('X(t)')
    ax.set_ylabel('Y(t)')
    ax.set_zlabel('Z(t)')
    plt.show()

plot()