Movatterモバイル変換


[0]ホーム

URL:


Open In App
Next Article:
3D Wireframe plotting in Python using Matplotlib
Next article icon

ASurface Plot is a representation of three-dimensional dataset. It describes a functional relationship between two independent variables X and Z and a designated dependent variable Y, rather than showing the individual data points. It is a companion plot of the contour plot. It is similar to the wireframe plot, but each face of the wireframe is a filled polygon. This helps to create the topology of the surface which is being visualized.
 

Creating 3D surface Plot


The axes3d present in Matplotlib's mpl_toolkits.mplot3d toolkit provides the necessary functions used to create 3D surface plots.Surface plots are created by using ax.plot_surface() function.
Syntax: 

ax.plot_surface(X, Y, Z)


where X and Y are 2D array of points of x and y while Z is 2D array of heights.Some more attributes of ax.plot_surface() function are listed below:
 

AttributeDescription
X, Y, Z2D arrays of data values
cstridearray of column stride(step size)
rstridearray of row stride(step size)
ccountnumber of columns to be used, default is 50
rcountnumber of row to be used, default is 50
colorcolor of the surface
cmapcolormap for the surface
norminstance to normalize values of color map
vminminimum value of map
vmaxmaximum value of map
facecolorsface color of individual surface
shadeshades the face color


Example: Let's create a 3D surface by using the above function 

Python3
# Import librariesfrommpl_toolkitsimportmplot3dimportnumpyasnpimportmatplotlib.pyplotasplt# Creating datasetx=np.outer(np.linspace(-3,3,32),np.ones(32))y=x.copy().T# transposez=(np.sin(x**2)+np.cos(y**2))# Creating figurefig=plt.figure(figsize=(14,9))ax=plt.axes(projection='3d')# Creating plotax.plot_surface(x,y,z)# show plotplt.show()

Output: 


 

Gradient surface Plot


Gradient surface plot is a combination of 3D surface plot with a 2D contour plot. In this plot the 3D surface is colored like 2D contour plot. The parts which are high on the surface contains different color than the parts which are low at the surface.
Syntax:

surf = ax.plot_surface(X, Y, Z, cmap=, linewidth=0, antialiased=False)


The attribute cmap= sets the color of the surface. A color bar can also be added by calling fig.colorbar. The code below create a gradient surface plot:
Example:

Python3
# Import librariesfrommpl_toolkitsimportmplot3dimportnumpyasnpimportmatplotlib.pyplotasplt# Creating datasetx=np.outer(np.linspace(-3,3,32),np.ones(32))y=x.copy().T# transposez=(np.sin(x**2)+np.cos(y**2))# Creating figurefig=plt.figure(figsize=(14,9))ax=plt.axes(projection='3d')# Creating color mapmy_cmap=plt.get_cmap('hot')# Creating plotsurf=ax.plot_surface(x,y,z,cmap=my_cmap,edgecolor='none')fig.colorbar(surf,ax=ax,shrink=0.5,aspect=5)ax.set_title('Surface plot')# show plotplt.show()

Output: 


 

3D surface Plot having 2D contour plot projections


3D surface plots plotted with Matplotlib can be projected on 2D surfaces. The code below creates a 3D plots and visualizes its projection on 2D contour plot:
Example: 

Python3
# Import librariesfrommpl_toolkitsimportmplot3dimportnumpyasnpimportmatplotlib.pyplotasplt# Creating datasetx=np.outer(np.linspace(-3,3,32),np.ones(32))y=x.copy().T# transposez=(np.sin(x**2)+np.cos(y**2))# Creating figurefig=plt.figure(figsize=(14,9))ax=plt.axes(projection='3d')# Creating color mapmy_cmap=plt.get_cmap('hot')# Creating plotsurf=ax.plot_surface(x,y,z,rstride=8,cstride=8,alpha=0.8,cmap=my_cmap)cset=ax.contourf(x,y,z,zdir='z',offset=np.min(z),cmap=my_cmap)cset=ax.contourf(x,y,z,zdir='x',offset=-5,cmap=my_cmap)cset=ax.contourf(x,y,z,zdir='y',offset=5,cmap=my_cmap)fig.colorbar(surf,ax=ax,shrink=0.5,aspect=5)# Adding labelsax.set_xlabel('X-axis')ax.set_xlim(-5,5)ax.set_ylabel('Y-axis')ax.set_ylim(-5,5)ax.set_zlabel('Z-axis')ax.set_zlim(np.min(z),np.max(z))ax.set_title('3D surface having 2D contour plot projections')# show plotplt.show()

Output: 


Improve
Practice Tags :

Similar Reads

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood ourCookie Policy &Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences

[8]ページ先頭

©2009-2025 Movatter.jp