Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the equivalent of Matlab's surf(x,y,z,c) in matplotlib?

I want to realize the function like surf(x,y,z,c) in matlab, here x,y and z are the coordinates, and c is a variable value, I can use c to define the color. I don't know how to realize it with matplotlib.

like image 943
bowang Avatar asked Mar 04 '14 15:03

bowang


1 Answers

I've done it using code something like this (see Edgelines vanish in mplot3d surf when facecolors are specified):

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import matplotlib
from pylab import *
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')


#Create X and Y data
x = np.arange(xmin, xmax, xstep)
y = np.arange(ymin, ymax, ystep)
X, Y = np.meshgrid(x, y)


surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors=C, antialiased=True)

#Show the plot
plt.show()
like image 167
Dan Avatar answered Sep 21 '22 07:09

Dan