ribbon
Ribbon plot
Description
ribbon(
plots the columns of
Z
)Z
as threedimensional ribbons of uniform width, where
ycoordinates range from 1 to the number of rows in
Z
. Ribbons advance along the xaxis centered at unit
intervals.
ribbon(___,
sets
properties of the ribbon plot using one or more namevalue arguments. For example you can
specify the color and transparency of the ribbons. For a list of properties, see Surface Properties. (since R2024b)Name=Value
)
s = ribbon(___)
returns a vector of
Surface
objects with one object per ribbon. Use s
to
modify properties of the plot after creating it. For a list of properties, see Surface Properties.
Examples
Create Ribbon Plot
Create a plot with five ribbons at increasing heights. First, create a 5by5 matrix with elements corresponding to ribbon heights.
Z = repmat(1:5,4,1)
Z = 4×5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Each column of Z
represents one ribbon, plotted at a constant xcoordinate corresponding to the column number and with ycoordinates corresponding to the row numbers of Z
.
ribbon(Z)
Specify Ribbon Locations
Create a 5by5 matrix with the magic
function.
Z = magic(5)
Z = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
Create a ribbon plot of the matrix and specify the ycoordinates so each ribbon is centered at 0.
Y = [2 1 0 1 2]; ribbon(Y,Z);
Create Ribbons with Different yCoordinates
Plot three ribbons at different locations along the yaxis. Specify the ycoordinates of the ribbons as a matrix Y
that is the same size as Z
, the matrix of ribbon heights. Each column of Y
corresponds to one ribbon.
Y = [1 2 3; 2 3 4; 3 4 5; 4 5 6]; Z = Y; ribbon(Y,Z)
Specify Ribbon Width
Create a ribbon plot and set the width of each ribbon to 30% of the total space available.
Z = magic(5); Y = [2 1 0 1 2]; ribbon(Y,Z,0.3)
Modify Ribbon Plot Appearance
Create a ribbon plot and specify an output argument. The output is a vector of five Surface
objects, where each object corresponds to one ribbon.
Z = magic(5); Y = [2 1 0 1 2]; s = ribbon(Y,Z)
s = 5x1 Surface array: Surface Surface Surface Surface Surface
Highlight the first ribbon by changing the EdgeColor
and LineWidth
properties of the corresponding Surface
object.
s(1).EdgeColor = "yellow";
s(1).LineWidth = 3;
Specify Ribbon Plot Colormap
Create a ribbon plot with 30 ribbons and a colorbar.
t = linspace(0,2*pi,30);
x = sin(t)';
y = cos(t);
ribbon(x*y)
cbar = colorbar;
cbar.Label.String= "Ribbon Number";
Change the ribbon colors using the colormap
function. ribbon
maps the xcoordinates of the ribbons to colors in the colormap linearly.
colormap(turbo)
Input Arguments
Z
— zcoordinates
numeric vector  numeric matrix
zcoordinates that represent ribbon heights, specified as a numeric vector or numeric matrix.
If
Z
is a vector,ribbon
creates a single ribbon regardless of whetherZ
is a row or column vector.If
Z
is a matrix,ribbon
creates one ribbon for each column. Ribbons advance along the xaxis centered at unit intervals, where xcoordinates range from 1 to the number of columns inZ
.
Y
— ycoordinates
numeric vector  numeric matrix
ycoordinates, specified as a numeric vector or numeric matrix.
The size of Z
determines the possible sizes of Y
:
If
Z
is a vector,Y
must be a vector of the same size asZ
.ribbon
plots a single ribbon atX = 1
using the data inY
andZ
.If
Z
is a matrix,Y
can be a row or column vector with a length equal to the number of rows inZ
, or a matrix of the same size asZ
.ribbon
plots a ribbon for each column ofZ
using the data inY
andZ
. IfY
is a vector, each ribbon has the same ycoordinate.
width
— Ribbon width
0.75 (default)  numeric scalar
Ribbon width, specified as a numeric scalar representing a percentage of the total space available for each ribbon.
If
width < 1
, the ribbon width occupies that fraction of the allocated space.If
width = 1
, the ribbons touch one another, leaving no space between them when viewed down the zaxis.If
width > 1
, the ribbons overlap and can intersect.
For example, the default value of 0.75
means the
ribbon width is 75% of the total space available for the ribbon, with 12.5% of empty
space on each side.
ax
— Target axes
Axes
object
Target axes, specified as an Axes
object. If you do not specify
the axes, MATLAB^{®} plots into the current axes or it creates an Axes
object if one does not exist.
NameValue Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Namevalue arguments must appear after other arguments, but the order of the
pairs does not matter.
Example: ribbon([1 2 3; 1 2 3],FaceColor="red")
creates a red ribbon
plot.
Note
The properties listed here are only a subset. For a full list, see Surface Properties.
FaceColor
— Face color
'flat'
(default)  'interp'
 'none'
 'texturemap'
 RGB triplet  hexadecimal color code  'r'
 'g'
 'b'
 ...
Face color, specified as one of the values in this table.
Value  Description 

'flat'  Use a different color for each face based on the values
in the 
'interp' 
Use interpolated coloring for each face based on the values in the

RGB triplet, hexadecimal color code, or color name 
Use the specified color for all the faces. This option does not use the color
values in the

'texturemap'  Transform the color data in CData so that
it conforms to the surface. 
'none'  Do not draw the faces. 
RGB triplets and hexadecimal color codes are useful for specifying custom colors.
An RGB triplet is a threeelement row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
; for example,[0.4 0.6 0.7]
.A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Thus, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name  Short Name  RGB Triplet  Hexadecimal Color Code  Appearance 

"red"  "r"  [1 0 0]  "#FF0000"  
"green"  "g"  [0 1 0]  "#00FF00"  
"blue"  "b"  [0 0 1]  "#0000FF"  
"cyan"
 "c"  [0 1 1]  "#00FFFF"  
"magenta"  "m"  [1 0 1]  "#FF00FF"  
"yellow"  "y"  [1 1 0]  "#FFFF00"  
"black"  "k"  [0 0 0]  "#000000"  
"white"  "w"  [1 1 1]  "#FFFFFF" 
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.
RGB Triplet  Hexadecimal Color Code  Appearance 

[0 0.4470 0.7410]  "#0072BD"  
[0.8500 0.3250 0.0980]  "#D95319"  
[0.9290 0.6940 0.1250]  "#EDB120"  
[0.4940 0.1840 0.5560]  "#7E2F8E"  
[0.4660 0.6740 0.1880]  "#77AC30"  
[0.3010 0.7450 0.9330]  "#4DBEEE"  
[0.6350 0.0780 0.1840]  "#A2142F" 
FaceAlpha
— Face transparency
1 (default)  scalar in range [0,1]
 'flat'
 'interp'
 'texturemap'
Face transparency, specified as one of these values:
Scalar in range
[0,1]
— Use uniform transparency across all the faces. A value of1
is fully opaque and0
is completely transparent. Values between0
and1
are semitransparent. This option does not use the transparency values in theAlphaData
property.'flat'
— Use a different transparency for each face based on the values in theAlphaData
property. The transparency value at the first vertex determines the transparency for the entire face. First you must specify theAlphaData
property as a matrix the same size as theZData
property. TheFaceColor
property also must be set to'flat'
.'interp'
— Use interpolated transparency for each face based on the values inAlphaData
property. The transparency varies across each face by interpolating the values at the vertices. First you must specify theAlphaData
property as a matrix the same size as theZData
property. TheFaceColor
property also must be set to'interp'
.'texturemap'
— Transform the data inAlphaData
so that it conforms to the surface.
EdgeColor
— Edge line color
[0 0 0]
(default)  'none'
 'flat'
 'interp'
 RGB triplet  hexadecimal color code  'r'
 'g'
 'b'
 ...
Edge line color, specified as one of the values listed here.
The default color of [0 0 0]
corresponds to black
edges.
Value  Description 

'none'  Do not draw the edges. 
'flat'  Use a different color for each edge based on the values
in the 
'interp' 
Use interpolated coloring for each edge based on the values in the

RGB triplet, hexadecimal color code, or color name 
Use the specified color for all the edges. This option does not use the color
values in the

RGB triplets and hexadecimal color codes are useful for specifying custom colors.
An RGB triplet is a threeelement row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
; for example,[0.4 0.6 0.7]
.A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Thus, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name  Short Name  RGB Triplet  Hexadecimal Color Code  Appearance 

"red"  "r"  [1 0 0]  "#FF0000"  
"green"  "g"  [0 1 0]  "#00FF00"  
"blue"  "b"  [0 0 1]  "#0000FF"  
"cyan"
 "c"  [0 1 1]  "#00FFFF"  
"magenta"  "m"  [1 0 1]  "#FF00FF"  
"yellow"  "y"  [1 1 0]  "#FFFF00"  
"black"  "k"  [0 0 0]  "#000000"  
"white"  "w"  [1 1 1]  "#FFFFFF" 
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.
RGB Triplet  Hexadecimal Color Code  Appearance 

[0 0.4470 0.7410]  "#0072BD"  
[0.8500 0.3250 0.0980]  "#D95319"  
[0.9290 0.6940 0.1250]  "#EDB120"  
[0.4940 0.1840 0.5560]  "#7E2F8E"  
[0.4660 0.6740 0.1880]  "#77AC30"  
[0.3010 0.7450 0.9330]  "#4DBEEE"  
[0.6350 0.0780 0.1840]  "#A2142F" 
EdgeAlpha
— Edge transparency
1 (default)  scalar value in range[0,1]
 'flat'
 'interp'
Edge transparency, specified as one of these values:
Scalar in range
[0,1]
— Use uniform transparency across all of the edges. A value of1
is fully opaque and0
is completely transparent. Values between0
and1
are semitransparent. This option does not use the transparency values in theAlphaData
property.'flat'
— Use a different transparency for each edge based on the values in theAlphaData
property. First you must specify theAlphaData
property as a matrix the same size as theZData
property. The transparency value at the first vertex determines the transparency for the entire edge. TheEdgeColor
property also must be set to'flat'
.'interp'
— Use interpolated transparency for each edge based on the values inAlphaData
property. First you must specify theAlphaData
property as a matrix the same size as theZData
property. The transparency varies across each edge by interpolating the values at the vertices. TheEdgeColor
property also must be set to'interp'
.
Extended Capabilities
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
The ribbon
function
supports GPU array input with these usage notes and limitations:
This function accepts GPU arrays, but does not run on a GPU.
For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
Usage notes and limitations:
This function operates on distributed arrays, but executes in the client MATLAB.
For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Version History
Introduced before R2006aR2024b: Control appearance and behavior with namevalue arguments
Control the appearance and behavior of ribbon plots by specifying namevalue arguments.
Previously, ribbon
did not support namevalue arguments.
See Also
Functions
Properties
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
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:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
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
 United Kingdom (English)