Surface plot - MATLAB surf (2024)

Surface plot

collapse all in page

  • Surface plot - MATLAB surf (1)

Syntax

surf(X,Y,Z)

surf(X,Y,Z,C)

surf(Z)

surf(Z,C)

surf(ax,___)

surf(___,Name,Value)

s = surf(___)

Description

example

surf(X,Y,Z) creates a three-dimensional surface plot, which is a three-dimensional surface that has solid edge colors and solid face colors. The function plots the values in matrix Z as heights above a grid in the x-y plane defined by X and Y. The color of the surface varies according to the heights specified by Z.

example

surf(X,Y,Z,C) additionallyspecifies the surface color.

surf(Z) creates a surface plot and uses the column and row indices of the elements in Z as the x- and y-coordinates.

surf(Z,C) additionallyspecifies the surface color.

surf(ax,___) plotsinto the axes specified by ax instead of the currentaxes. Specify the axes as the first input argument.

example

surf(___,Name,Value) specifies surface properties using one or more name-value pair arguments. For example, 'FaceAlpha',0.5 creates a semitransparent surface.

example

s = surf(___) returns the chart surface object. Use s to modify the surface after it is created. For a list of properties, see Surface Properties.

Examples

collapse all

Create Surface Plot

Open Live Script

Create three matrices of the same size. Then plot them as a surface. The surface plot uses Z for both height and color.

[X,Y] = meshgrid(1:0.5:10,1:20);Z = sin(X) + cos(Y);surf(X,Y,Z)

Surface plot - MATLAB surf (2)

Specify Colormap Colors for Surface Plot

Open Live Script

Specify the colors for a surface plot by including a fourth matrix input, C. The surface plot uses Z for height and C for color. Specify the colors using a colormap, which uses single numbers to stand for colors on a spectrum. When you use a colormap, C is the same size as Z. Add a color bar to the graph to show how the data values in C correspond to the colors in the colormap.

[X,Y] = meshgrid(1:0.5:10,1:20);Z = sin(X) + cos(Y);C = X.*Y;surf(X,Y,Z,C)colorbar

Surface plot - MATLAB surf (3)

Specify True Colors for Surface Plot

Open Live Script

Specify the colors for a surface plot by including a fourth matrix input, CO. The surface plot uses Z for height and CO for color. Specify the colors using truecolor, which uses triplets of numbers to stand for all possible colors. When you use truecolor, if Z is m-by-n, then CO is m-by-n-by-3. The first page of the array indicates the red component for each color, the second page indicates the green component, and the third page indicates the blue component.

[X,Y,Z] = peaks(25);CO(:,:,1) = zeros(25); % redCO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % greenCO(:,:,3) = ones(25).*linspace(0,1,25); % bluesurf(X,Y,Z,CO)

Surface plot - MATLAB surf (4)

Modify Surface Plot Appearance

Open Live Script

Create a semitransparent surface by specifying the FaceAlpha name-value pair with 0.5 as the value. To allow further modifications, assign the surface object to the variable s.

[X,Y] = meshgrid(-5:.5:5);Z = Y.*sin(X) - X.*cos(Y);s = surf(X,Y,Z,'FaceAlpha',0.5)

Surface plot - MATLAB surf (5)

s = Surface with properties: EdgeColor: [0 0 0] LineStyle: '-' FaceColor: 'flat' FaceLighting: 'flat' FaceAlpha: 0.5000 XData: [21x21 double] YData: [21x21 double] ZData: [21x21 double] CData: [21x21 double] Use GET to show all properties

Use s to access and modify properties of the surface object after it is created. For example, hide the edges by setting the EdgeColor property.

s.EdgeColor = 'none';

Surface plot - MATLAB surf (6)

Input Arguments

collapse all

Xx-coordinates
matrix | vector

x-coordinates, specified as a matrix the same size as Z, or as a vector with length n, where [m,n] = size(Z). If you do not specify values for X and Y, surf uses the vectors (1:n) and (1:m).

You can use the meshgrid function to create X and Y matrices.

The XData property of the Surface object stores the x-coordinates.

Example: X = 1:10

Example: X = [1 2 3; 1 2 3; 1 2 3]

Example: [X,Y] = meshgrid(-5:0.5:5)

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Yy-coordinates
matrix | vector

y-coordinates, specified as a matrix the same size as Z or as a vector with length m, where [m,n] = size(Z). If you do not specify values for X and Y, surf uses the vectors (1:n) and (1:m).

You can use the meshgrid function to create the X and Y matrices.

The YData property of the surface object stores the y -coordinates.

Example: Y = 1:10

Example: Y = [1 1 1; 2 2 2; 3 3 3]

Example: [X,Y] = meshgrid(-5:0.5:5)

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Zz-coordinates
matrix

z-coordinates, specified as a matrix. Z must have at least two rows and two columns.

Z specifies the height of the surface plot at each x-y coordinate. If you do not specify the colors, then Z also specifies the surface colors.

The ZData property of the surface object stores the z -coordinates.

Example: Z = [1 2 3; 4 5 6]

Example: Z = sin(x) + cos(y)

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

CColor array
matrix | m-by-n-by-3 array of RGB triplets

Color array, specified as an m-by-n matrix of colormap indices or as an m-by-n-by-3 array of RGB triplets, where Z is m-by-n.

  • To use colormap colors, specify C as a matrix. For each grid point on the surface, C indicates a color in the colormap. The CDataMapping property of the surface object controls how the values in C correspond to colors in the colormap.

  • To use truecolor colors, specify C as an array of RGB triplets.

For more information, see Differences Between Colormaps and Truecolor.

The CData property of the surface object stores the color array. For additional control over the surface coloring, use the FaceColor and EdgeColor properties.

axAxes to plot in
axes object

Axes to plot in, specified as an axes object. If you do not specify the axes, then surf plots into the current axes.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: surf(X,Y,Z,'FaceAlpha',0.5,'EdgeColor','none') createsa semitransparent surface with no edges drawn.

Note

The properties listed here are only a subset. For a full list,see Surface Properties.

Extended Capabilities

Version History

Introduced before R2006a

See Also

Functions

  • colormap | pcolor | meshgrid | imagesc | shading | view | mesh

Properties

  • Surface Properties

Topics

  • Representing Data as a Surface
  • How Surface Plot Data Relates to a Colormap

MATLAB Command

You clicked a link that corresponds to this MATLAB command:

 

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Surface plot - MATLAB surf (7)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

Contact your local office

Surface plot - MATLAB surf (2024)

FAQs

How to plot response surface in MATLAB? ›

To create a response surface plot, you have to provide Z as a matrix. Specifically, if two vector arguments X & Y defined such that length(X) = n and length(Y) = m then, size(Z) should be [m,n]. In order to plot the vertices of the surface patches as the triples (X(j), Y(i), Z(i,j)).

What is the difference between Ezsurf and surf in MATLAB? ›

The ezsurf function does not plot points where the mathematical function is not defined. These points are set to NaN so that they do not plot. Use surf to plot the same data without filtering discontinuities.

Why is my surf plot all black in MATLAB? ›

The reason you get a surface that's all black is that the grid is too fine, so all you see are the black lines between grid cells. To fix it you can use a coarser grid, if that's an option, or you can turn the grid lines off by specifying 'EdgeColor','none' when the surface is created (or after it's created).

How do you interpret a response surface plot? ›

The interpretations are as follows:
  1. If a coefficient for a factor is significant, you can conclude that not all level means are equal.
  2. If a coefficient for a squared term is significant, you can conclude that the relationship between the factor and the response follows a curved line.

What is the difference between surface plot and mesh in MATLAB? ›

mesh produces wireframe surfaces that color only the lines connecting the defining points. surf displays both the connecting lines and the faces of the surface in color. The figure colormap and figure properties determine how MATLAB colors the surface.

How to extract surf features in MATLAB? ›

MathWorks Matrix Menu
  1. Feature Extraction Using SURF.
  2. Third-Party Prerequisites.
  3. Verify GPU Environment.
  4. Feature Extraction.
  5. Read Input Image.
  6. Generate CUDA MEX for the Function.
  7. Run SURF Detection on MATLAB and GPU.
  8. Depict the Extracted Interest Points.

How do you make a surf plot transparent in MATLAB? ›

Set the properties to a scalar value in the range [0,1] . A value of 0 means completely transparent, a value of 1 means completely opaque, and values between 0 and 1 are semitransparent. Patch, surface, scatter, and image objects support using alpha data to vary the transparency across the object.

What is a surf plot? ›

Introduction. Surface plots are diagrams of three-dimensional data. Rather than showing the individual data points, surface plots show a functional relationship between a designated dependent variable (Y), and two independent variables (X and Z). The plot is a companion plot to the contour plot.

How to plot a surface plot? ›

Create Chart

Choose the 'Type' of trace, then choose '3D Surface' under '3D' chart type. Next, fill out the necessary 'X', 'Y' and 'Z' values from their respective dropdown menus. This will create a 3D surface, as seen below.

How to define a surface in MATLAB? ›

MATLAB® graphics defines a surface by the z-coordinates of points above a rectangular grid in the x-y plane. The plot is formed by joining adjacent points with straight lines. Surface plots are useful for visualizing matrices that are too large to display in numerical form and for graphing functions of two variables.

What is the surface plot of a function? ›

A Surface 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.

How do I make my MATLAB plot look better? ›

Direct link to this comment
  1. Increase the linewidth (2 or 3 is good).
  2. Add a grid.
  3. Add minor ticks to the axes.
  4. Plot as an area with solid line and semi-transparent fill.
  5. Set the axes limits appropriately.
  6. Add a legend.
  7. Change the font and fontsize to match the output size.
  8. Set the figure aspect ratio correctly.
Feb 27, 2016

What is the default view surf in MATLAB? ›

Default 2-D and 3-D Views

MATLAB automatically selects a viewpoint that is determined by whether the plot is 2-D or 3-D: For 2-D plots, the default is azimuth = 0° and elevation = 90°. For 3-D plots, the default is azimuth = -37.5° and elevation = 30°.

How do I change the color of my surf plot in MATLAB? ›

MATLAB® uses a default color scheme when it displays visualizations such as surface plots. You can change the color scheme by specifying a colormap. Colormaps are three-column arrays containing RGB triplets in which each row defines a distinct color.

How to graph impulse response in MATLAB? ›

To create impulse plots with default options or to extract impulse response data, use impulse . h = impulseplot( sys ) plots the impulse response of the dynamic system model sys and returns the plot handle h to the plot. You can use this handle h to customize the plot with the getoptions and setoptions commands.

How to plot Ccdf in MATLAB? ›

H = plotCCDF(___,Name=Value) , additionally you can use the name-value arguments of the plot function to customize the configuration of the CCDF plot. For example, plotCCDF(meter,LineWidth=2) plots the CCDF curves with a line width of 2 points.

What is a surface contour plot in MATLAB? ›

surfc( X , Y , Z ) creates a three-dimensional surface plot with a contour plot underneath. A surface plot is a three-dimensional surface that has solid edge colors and solid face colors. The function plots the values in matrix Z as heights above a grid in the x-y plane defined by X and Y .

How to use rsm in MATLAB? ›

Fit a response surface model to the data by clicking the Analyze button below the trial-and-error data or the Response Surface button below the experimental data. Both buttons load the data into the Response Surface Tool rstool .

Top Articles
Latest Posts
Article information

Author: Manual Maggio

Last Updated:

Views: 5683

Rating: 4.9 / 5 (69 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Manual Maggio

Birthday: 1998-01-20

Address: 359 Kelvin Stream, Lake Eldonview, MT 33517-1242

Phone: +577037762465

Job: Product Hospitality Supervisor

Hobby: Gardening, Web surfing, Video gaming, Amateur radio, Flag Football, Reading, Table tennis

Introduction: My name is Manual Maggio, I am a thankful, tender, adventurous, delightful, fantastic, proud, graceful person who loves writing and wants to share my knowledge and understanding with you.