Bar graph
bar(___,
sets the relative bar width, which controls the separation of bars within a group. Specifywidth
)width
as a scalar value. Use this option with any of the input argument combinations in the previous syntaxes.
bar(___,
specifies the style of the bar groups. For example, usestyle
)'stacked'
to display each group as one multicolored bar.
bar(___,
specifies properties of the bar graph using one or more name-value pair arguments. Only bar graphs that use the defaultName,Value
)'grouped'
or'stacked'
style support setting bar properties. Specify the name-value pair arguments after all other input arguments. For a list of properties, seeBar Properties.
Specify the bar locations along thex-axis.
x = 1900:10:2000; y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(x,y)
Set the width of each bar to 40 percent of the total space available for each bar.
y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(y,0.4)
Display one bar for each row of the matrix. The height of each bar is the sum of the elements in the row.
y = [2 2 3; 2 5 6; 2 8 9; 2 11 12]; bar(y,'stacked')
Definex
as a vector of three year values. Definey
as a matrix that contains a combination of negative and positive values. Display the values in a bar graph.
x = [1980 1990 2000]; y = [15 20 -5; 10 -17 21; -10 5 15]; bar(x,y,'stacked')
One way to indicate categories for your bars is to specifyX
as a categorical array. Thebar
function uses a sorted list of the categories, so the bars might display in a different order than you expect. To preserve the order, call thereordercats
function.
DefineX
as categorical array, and call thereordercats
function to specify the order for the bars. Then defineY
as a vector of bar heights and display the bar graph.
X = categorical({'Small','Medium','Large','Extra Large'}); X = reordercats(X,{'Small','Medium','Large','Extra Large'}); Y = [10 21 33 52]; bar(X,Y)
Definevals
as a matrix containing the values of two data sets. Display the values in a bar graph and specify an output argument. Since there are two data sets,bar
返回一个vector containing twoBar
objects.
x = [1 2 3]; vals = [2 3 6; 11 23 26]; b = bar(x,vals);
Display the values at the tips of the first series of bars. Get the coordinates of the tips of the bars by getting theXEndPoints
andYEndPoints
properties of the firstBar
object. Pass those coordinates to thetext
function, and specify the vertical and horizontal alignment so that the values are centered above the tips of the bars.
xtips1 = b(1).XEndPoints; ytips1 = b(1).YEndPoints; labels1 = string(b(1).YData); text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...'VerticalAlignment','bottom')
Next, display the values above the tips of the second series of bars.
xtips2 = b(2).XEndPoints; ytips2 = b(2).YEndPoints; labels2 = string(b(2).YData); text(xtips2,ytips2,labels2,'HorizontalAlignment','center',...'VerticalAlignment','bottom')
Starting in R2019b, you can display a tiling of bar graphs using thetiledlayout
andnexttile
functions. Call thetiledlayout
function to create a 2-by-1 tiled chart layout. Call thenexttile
function to create the axes objectsax1
andax2
. Display a bar graph in the top axes. In the bottom axes, display a stacked bar graph of the same data.
y = [1 2 3; 4 5 6]; tiledlayout(2,1)% Top bar graphax1 = nexttile; bar(ax1,y)% Bottom bar graphax2 = nexttile; bar(ax2,y,'stacked')
Create a bar graph using red bars.
y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(y,'r')
Set the bar interior color and outline color using RGB triplets. Set the width of the bar outline.
y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(y,'FaceColor',[0 .5 .5],'EdgeColor',[0 .9 .9],'LineWidth',1.5)
Control individual bar colors using theCData
property of theBar
object.
Create a bar chart and assign theBar
object to a variable. Set theFaceColor
property of theBar
object to'flat'
so that the chart uses the colors defined in theCData
property. By default, theCData
property is prepopulated with a matrix of the default RGB color values. To change a particular color, change the corresponding row in the matrix. For example, change the color of the second bar.
b = bar(rand(10,1)); b.FaceColor ='flat'; b.CData(2,:) = [.5 0 .5];
Create a bar chart that uses colormap colors by setting theFaceColor
property to'flat'
. Then set theCData
property for eachBar
object to an integer.
y = [1 3 5; 3 2 7; 3 4 2]; b = bar(y,'FaceColor','flat');fork = 1:size(y,2) b(k).CData = k;end
Create matrixy
, where each column is a series of data. Call thebar
function to display the data in a bar graph, and specify an output argument. The output is a vector of threeBar
objects, where each object corresponds to a different series. This is true whether the bars are grouped or stacked.
y = [10 15 20; 30 35 40; 50 55 62]; b = bar(y);
Make the third series of bars green.
b(3).FaceColor = [.2 .6 .5];
x
—x-coordinatesx-coordinates, specified as a scalar, vector, or matrix. The values ofx
do not need to be in order, but the size ofx
depends on the size ofy
and how you want to display your data. This table describes the most common situations.
Presentation | How to Specify X and Y | Example |
---|---|---|
Display one series of bars. | Specify |
x = [1980 1990 2000]; y = [10 20 30]; bar(x,y) |
Display multiple series of bars in groups. | Specify either of these combinations:
|
x = [1980 1980 1980 1990 1990 1990]; y = [2 6 9 11 22 32]; bar(x,y) x = [1980 1990]; y = [2 6 9 11 22 32]; bar(x,y) |
Display one group of bars centered at onex value. |
Specify |
x = 1990; y = [10 20 30]; bar(x,y) |
Data Types:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|categorical
|datetime
|duration
y
—y-coordinatesy-coordinates, specified as a scalar, vector, or matrix. The size ofy
depends on the size ofx
and how you want to display your data. This table describes the most common situations.
Presentation | How to Specify X and Y | Example |
---|---|---|
Display one series of bars. | Specify |
x = [1980 1990 2000]; y = [10 20 30]; bar(x,y) |
Display multiple series of bars in groups. | Specify either of these combinations:
|
x = [1980 1980 1980 1990 1990 1990]; y = [2 6 9 11 22 32]; bar(x,y) x = [1980 1990]; y = [2 6 9 11 22 32]; bar(x,y) |
Display one group of bars centered at onex value. |
Specify |
x = 1990; y = [10 20 30]; bar(x,y) |
Data Types:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|duration
width
—Bar width0.8
(default) |scalarBar width, specified as a fraction of the total space available for each bar. The default of0.8
means the bar width is 80% of the space from the previous bar to the next bar, with 10% of that space on each side.
If the width is1
, then the bars within a group touch one another.
Example:bar([1 2 3],0.5)
creates bars that use 50% of the available space.
Data Types:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
style
—Group style'grouped'
(default) |'stacked'
|'hist'
|'histc'
Group style, specified by one of these values.
Style | Result | Example |
---|---|---|
|
Display each group as adjacent bars that are centered around their corresponding |
|
|
Display each group as one multicolored bar. The length of a bar is the sum of the elements in the group. If |
|
|
Display the bars in histogram format, in which the bars in a group touch one another. The trailing edge of each group is aligned with the corresponding Note A better way to display a histogram is to call the |
|
|
Display the bars in histogram format. Each group is centered at the corresponding Note A better way to display a histogram is to call the |
|
color
—Bar color'b'
|'r'
|'g'
|'c'
|'m'
|'y'
|'k'
|'w'
Bar color, specified as one of the colors in this table.
Color | Color |
---|---|
'b' |
Blue |
'r' |
Red |
'g' |
Green |
'c' |
Cyan |
'm' |
Magenta |
'y' |
Yellow |
'k' |
Black |
'w' |
White |
ax
—Axes objectAxes object. If you do not specify an axes, thenbar
uses the current axes for the bar graph.
Specify optional comma-separated pairs ofName,Value
arguments.Name
is the argument name andValue
is the corresponding value.Name
must appear inside quotes. You can specify several name and value pair arguments in any order asName1,Value1,...,NameN,ValueN
.
bar([10 20 30],'EdgeColor','g')
specifies a green outline around the bars.
TheBar
properties listed here are only a subset. For a complete list, seeBar Properties.
Note
The properties listed here are only a subset. For a complete list, seeBar Properties.
You can set these properties only on bar graphs that use the default'grouped'
or'stacked'
style.
EdgeColor
—Outline color'flat'
|RGB triplet|hexadecimal color code|'r'
|'g'
|'b'
| ...Outline color, specified as'flat'
, an RGB triplet, a hexadecimal color code, a color name, or a short name. If there are 150 bars or fewer, the default value is[0 0 0]
, which corresponds to black. If there are more than 150 adjacent bars, the default value is'none'
.
Starting in R2017b, the'flat'
option uses theCData
values to color the edges. In previous releases, the'flat'
option colored the edges using colors from the colormap.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a three-element 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' |
|
'none' |
Not applicable | Not applicable | Not applicable | No color |
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' |
|
Example:b = bar(1:10,'EdgeColor','red')
Example:b.EdgeColor = [0 0.5 0.5];
Example:b.EdgeColor = 'flat';
Example:b.EdgeColor = '#D2F9A7';
FaceColor
—Fill color'flat'
|RGB triplet|hexadecimal color code|'r'
|'g'
|'b'
| ...Fill color, specified as'flat'
, an RGB triplet, a hexadecimal color code, a color name, or a short name. The'flat'
option uses theCData
property value of theBar
object to color the faces.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a three-element 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' |
|
'none' |
Not applicable | Not applicable | Not applicable | No color |
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' |
|
Starting in R2017b, the default value is an RGB triplet from theColorOrder
property of the axes. In previous releases, the default value was'flat'
and the colors were based on the colormap.
Example:b = bar(1:10,'FaceColor','red')
Example:b.FaceColor = [0 0.5 0.5];
Example:b.FaceColor = 'flat';
Example:b.FaceColor = '#D2F9A7';
CData
—Color dataColor data, specified as one of these values:
RGB triplet — Single RGB color value applies to all bars.
Three-column matrix — One color per bar. Each row in the matrix specifies an RGB triplet for a particular bar.
Scalar — Single color applies to all bars, where the color comes from the colormap.
Vector — One color per bar. The colors come from the colormap.
By default, when you create a bar chart, theCData
property contains a three-column matrix of RGB triplets. You can change the color for a particular bar by changing the corresponding row in the matrix.
This property applies only when theFaceColor
orEdgeColor
property is set to'flat'
.
Change the color for a particular bar by setting theFaceColor
property to'flat'
. Then change the corresponding row in theCData
matrix to the new RGB triplet. For example, change the color of the second bar.
b = bar(1:10,'FaceColor','flat'); b.CData(2,:) = [0 0.8 0.8];
BaseValue
—Baseline value0
(default) |numeric scalar valueBaseline value, specified as a numeric scalar value.
The baseline value that you specify applies to either thex-axis or they-axis depending on the bar chart orientation. If you change the orientation of the bar chart from vertical to horizontal, or vice versa, the baseline value might change. Set theBaseValue
property after setting theHorizontal
property.
LineStyle
—Line style of bar outlines'-'
(default) |'--'
|':'
|'-.'
|'none'
Line style of bar outlines, specified as one of the line styles in this table.
Line Style | Description | Resulting Line |
---|---|---|
'-' |
Solid line |
|
'--' |
Dashed line |
|
':' |
Dotted line |
|
'-.' |
Dash-dotted line |
|
'none' |
No line | No line |
LineWidth
—Width of bar outlines0.5
(default) |positive valueWidth of bar outlines, specified as a positive value in point units. One point equals 1/72 inch.
Example:1.5
Data Types:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
b
—Bar
objectsBar
objectsBar
objects. Use the elements inb
to access and modify properties of a specificBar
object after it has been created. The number ofBar
objects depends on the size ofy
. Ify
is a vector, thenb
is oneBar
object. Ify
is a matrix, thenb
is a vector containing aBar
对象为每个系列y
.
A series consists of the bars at all locations inX
for a particular set of data. By default, each series of bars is indicated by a different color.
A group consists of all the bars at a particular location inX
.
Usage notes and limitations:
This function accepts GPU arrays, but does not run on a GPU.
For more information, seeRun MATLAB Functions on a GPU(Parallel Computing Toolbox).
Usage notes and limitations:
This function operates on distributed arrays, but executes in the client MATLAB.
For more information, seeRun MATLAB Functions with Distributed Arrays(Parallel Computing Toolbox).
You have a modified version of this example. Do you want to open this example with your edits?
You clicked a link that corresponds to this MATLAB command:
运行该命令通过输入MATLAB逗号nd Window. Web browsers do not support MATLAB commands.
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:.
Selectweb siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.