bar
Gráfica de barras

Sintaxis
Descripción
bar(
crea una gráfica de barras con una barra para cada elemento de y
)y
.
Para representar una sola serie de barras, especifique
y
como un vector de longitud m. Las barras están situadas desde1
hasta m a lo largo del eje x.Para representar múltiples series de barras, especifique
y
como una matriz con una columna para cada serie.
bar(___,
especifica el estilo de los grupos de barras. Por ejemplo, utilice style
)'stacked'
para mostrar cada grupo como una barra multicolor.
bar(___,
establece el color para todas las barras. Por ejemplo, utilice color
)'r'
para barras rojas.
bar(___,
especifica las propiedades de la gráfica de barras utilizando uno o más argumentos de par nombre-valor. Solo las gráficas de barras que utilizan el estilo predeterminado Name,Value
)'grouped'
o 'stacked'
admiten la configuración de las propiedades de las barras. Especifique los argumentos de par nombre-valor tras el resto de argumentos de entrada. Para obtener una lista de las propiedades, consulte Bar Properties.
Ejemplos
Especifique las ubicaciones de las barras a lo largo del eje x.
x = 1900:10:2000; y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(x,y)
Desde R2023b
Cree un vector de cadena x
que contenga los nombres de las cuatro barras. Cree un vector numérico y
que contenga las longitudes de las barras. Después, cree una gráfica de barras de x
e y
.
x = ["Spring" "Summer" "Autumn" "Winter"]; y = [1 2 3 4]; bar(x,y)
Establezca la anchura de cada barra en el 40 por ciento del espacio total disponible para cada barra.
y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(y,0.4)
Muestre una barra para cada fila de la matriz. La altura de cada barra es la suma de los elementos de la fila.
y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y,'stacked')
Cree un escalar x
y un vector y
. Muestre una barra apilada centrada en x=2020
. Cada sección en la pila se corresponde con un elemento de y
.
x = 2020;
y = [30 50 23];
b = bar(x,y,"stacked");
Ajuste la anchura de la barra apilada. Dado que las barras individuales están apiladas, al cambiar la anchura de un objeto Bar
se cambian todas.
b(1).BarWidth = 0.25;
Defina x
como un vector de valores de tres años. Defina y
como una matriz que contiene una combinación de valores negativos y positivos. Muestre los valores en una gráfica de barras.
x = [1980 1990 2000];
y = [15 20 -5; 10 -17 21; -10 5 15];
bar(x,y,'stacked')
Una forma de indicar categorías para las barras es especificar X
como arreglo categórico. La función bar
utiliza una lista ordenada de categorías, por lo que es posible que las barras se muestren en un orden distinto al que esperaba. Para mantener el orden, llame a la función reordercats
.
Defina X
como arreglo categórico y llame a la función reordercats
para especificar el orden de las barras. A continuación, defina Y
como vector de las alturas de las barras y muestre la gráfica de barras.
X = categorical({'Small','Medium','Large','Extra Large'}); X = reordercats(X,{'Small','Medium','Large','Extra Large'}); Y = [10 21 33 52]; bar(X,Y)
Desde R2024b
Cree una matriz vals
que contenga los valores de dos conjuntos de datos. Muestre los valores en una gráfica de barras y especifique un argumento de salida. Puesto que hay dos conjuntos de datos, bar
devuelve un vector de dos objetos Bar
.
x = [1 2 3]; vals = [2 3 6; 11 23 26]; b = bar(x,vals);
Muestre los valores de altura, almacenados en la propiedad YData
, en las puntas de la primera serie de barras.
b(1).Labels = b(1).YData;
A continuación, etiquete la segunda serie de barras de la misma forma.
b(2).Labels = b(2).YData;
Como alternativa a utilizar la propiedad Labels
para especificar etiquetas de barra, puede usar la función text
para crear las etiquetas y colocarlas utilizando las propiedades XEndPoints
e YEndPoints
.
Cree una matriz vals
que contenga los valores de dos conjuntos de datos. Muestre los valores en una gráfica de barras y especifique un argumento de salida. Puesto que hay dos conjuntos de datos, bar
devuelve un vector de dos objetos Bar
.
x = [1 2 3]; vals = [2 3 6; 11 23 26]; b = bar(x,vals);
Muestre los valores de altura en las puntas de la primera serie de barras. Obtenga las coordenadas de las puntas de las barras obteniendo las propiedades XEndPoints
e YEndPoints
del primer objeto Bar
. Pase esas coordenadas a la función text
y especifique la alineación vertical y horizontal de manera que los valores estén centrados por encima de las puntas de las barras.
xtips1 = b(1).XEndPoints; ytips1 = b(1).YEndPoints; labels1 = string(b(1).YData); text(xtips1,ytips1,labels1,'HorizontalAlignment','center',... 'VerticalAlignment','bottom')
A continuación, muestre los valores por encima de las puntas de la segunda serie de barras.
xtips2 = b(2).XEndPoints; ytips2 = b(2).YEndPoints; labels2 = string(b(2).YData); text(xtips2,ytips2,labels2,'HorizontalAlignment','center',... 'VerticalAlignment','bottom')
Puede mostrar un mosaico de gráficas de barras utilizando las funciones tiledlayout
y nexttile
. Llame a la función tiledlayout
para crear un diseño de gráfica en mosaico de 2 por 1. Llame a la función nexttile
para crear los objetos de ejes ax1
y ax2
. Muestre una gráfica de barras en los ejes superiores. En los ejes inferiores, muestre una gráfica de barras apiladas de los mismos datos.
y = [1 2 3; 4 5 6]; tiledlayout(2,1) % Top bar graph ax1 = nexttile; bar(ax1,y) % Bottom bar graph ax2 = nexttile; bar(ax2,y,'stacked')
Cree una gráfica de barras utilizando barras rojas.
y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y,'r')
Establezca el color del interior de las barras y el color del contorno utilizando tripletes RGB. Establezca la anchura del contorno de las barras.
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)
Controle los colores de las barras individuales utilizando la propiedad CData
del objeto Bar
.
Cree una gráfica de barras y asigne el objeto Bar
a una variable. Establezca la propiedad FaceColor
del objeto Bar
en 'flat'
para que la gráfica utilice los colores definidos en la propiedad CData
. De manera predeterminada, la propiedad CData
se rellena previamente con una matriz de los valores predeterminados de los colores RGB. Para cambiar un color determinado, cambie la fila correspondiente en la matriz. Por ejemplo, cambie el color de la segunda barra.
b = bar(rand(10,1));
b.FaceColor = 'flat';
b.CData(2,:) = [.5 0 .5];
Cree una gráfica de barras que utilice los colores del mapa de colores estableciendo la propiedad FaceColor
en 'flat'
. A continuación, establezca la propiedad CData
para cada objeto Bar
en un entero.
y = [1 3 5; 3 2 7; 3 4 2]; b = bar(y,'FaceColor','flat'); for k = 1:size(y,2) b(k).CData = k; end
Desde R2023b
Las paletas de colores con nombre ofrecen una forma cómoda de cambiar los colores de una gráfica. Este ejemplo compara una gráfica de barras con tres paletas de colores diferentes.
Cree una gráfica de barras de números aleatorios usando la paleta predeterminada.
bar(rand(3,5))
Cambie la paleta de color a reef
mediante la función colororder
.
colororder("reef")
Cambie la paleta de color a earth
.
colororder("earth")
Cree una matriz y
, donde cada columna es una serie de datos. Llame a la función bar
para mostrar los datos en una gráfica de barras y especifique un argumento de salida. La salida es un vector de tres objetos Bar
, donde cada objeto se corresponde con una serie distinta. Esto es verdadero tanto si las barras están agrupadas como apiladas.
y = [10 15 20; 30 35 40; 50 55 62]; b = bar(y);
Haga que la tercera serie de barras sea verde.
b(3).FaceColor = [.2 .6 .5];
Argumentos de entrada
Coordenadas x, especificadas como escalar, vector, matriz, arreglo de cadenas o arreglo de celdas de vectores de caracteres. No es necesario que los valores de x
estén en orden.
Si especifica x
como un arreglo de cadenas o un arreglo de celdas de vectores de caracteres, los valores deben ser únicos. MATLAB® almacena los valores como un arreglo categórico, y las barras se muestran en el orden especificado.
En esta tabla, se describen algunas formas habituales de presentar los datos.
Presentación | Cómo especificar X e Y | Ejemplo |
---|---|---|
Mostrar una serie de barras. | Especifique |
x = [1980 1990 2000]; y = [10 20 30]; bar(x,y)
|
Mostrar múltiples series de barras en grupos. | Especifique una de estas combinaciones:
| 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)
|
Mostrar un grupo de barras centrado en un valor x . | Especifique |
x = 1990; y = [10 20 30]; bar(x,y)
|
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
| string
(desde R2023b) | cell
(desde R2023b)
Coordenadas y, especificadas como escalar, vector o matriz. En esta tabla, se describen algunas formas habituales de presentar los datos.
Presentación | Cómo especificar X e Y | Ejemplo |
---|---|---|
Mostrar una serie de barras. | Especifique |
x = [1980 1990 2000]; y = [10 20 30]; bar(x,y)
|
Mostrar múltiples series de barras en grupos. | Especifique una de estas combinaciones:
| 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)
|
Mostrar un grupo de barras centrado en un valor x . | Especifique |
x = 1990; y = [10 20 30]; bar(x,y)
|
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| duration
Ancho de barra, especificado como una proporción del espacio total disponible para cada barra. El valor predeterminado de 0.8
significa que el ancho de barra es el 80% del espacio desde la barra anterior a la siguiente barra, con un 10% de espacio a cada lado.
Si la anchura es 1
, las barras del grupo se tocan entre sí.
Ejemplo: bar([1 2 3],0.5)
crea barras que utilizan el 50% del espacio disponible.
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Estilo de grupo, especificado por uno de estos valores.
Estilo | Resultado | Ejemplo |
---|---|---|
| Muestra cada grupo como barras adyacentes que están centradas alrededor de su valor |
|
| Muestra cada grupo como una barra multicolor. La longitud de una barra es la suma de los elementos del grupo. Si |
|
| Muestra las barras en el formato histograma, donde las barras de un grupo se tocan entre sí. El borde final de cada grupo está alineado con el valor Nota Una mejor forma para mostrar un histograma es llamar a la función |
|
| Muestra las barras en el formato histograma. Cada grupo está centrado en el valor Nota Una mejor forma para mostrar un histograma es llamar a la función |
|
Color de las barras, especificado como una de las opciones de esta tabla.
Nombre del color | Nombre corto | Apariencia |
---|---|---|
'red' | 'r' | |
'green' | 'g' | |
'blue' | 'b' | |
'cyan' | 'c' | |
'magenta' | 'm' | |
'yellow' | 'y' | |
'black' | 'k' | |
'white' | 'w' | |
Objeto de ejes. Si no especifica unos ejes, bar
utiliza los ejes actuales para la gráfica de barras.
Argumentos de par nombre-valor
Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN
, donde Name
es el nombre del argumento y Value
es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.
En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name
entre comillas.
Ejemplo: bar([10 20 30],'EdgeColor','g')
especifica un contorno verde alrededor de las barras.
Las propiedades de Bar
que se enumeran aquí son solo un subconjunto. Para obtener una lista completa, consulte Bar Properties.
Nota
Las propiedades que se enumeran aquí son solo un subconjunto. Para obtener una lista completa, consulte Bar Properties.
Puede establecer estas propiedades solo en las gráficas de barras que utilizan el estilo predeterminado
'grouped'
o'stacked'
.
Color del contorno, especificado como 'flat'
, triplete RGB, código de color hexadecimal, nombre de color o nombre corto. Si hay 150 barras o menos, el valor predeterminado es [0 0 0]
, que corresponde al negro. Si hay más de 150 barras adyacentes, el valor predeterminado es 'none'
.
A partir de la versión R2017b, la opción 'flat'
utiliza los valores CData
para colorear los bordes. En versiones anteriores, la opción 'flat'
coloreaba los bordes utilizando colores del mapa de colores.
Para definir un color personalizado, especifique un triplete RGB o un código de color hexadecimal.
Un triplete RGB es un vector fila de tres elementos, cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el rango
[0,1]
, por ejemplo[0.4 0.6 0.7]
.Un código de color hexadecimal es un escalar de cadena o un vector de caracteres que comienza con el símbolo de almohadilla (
#
) seguido de tres o seis dígitos hexadecimales, que pueden oscilar entre0
yF
. Los valores no distinguen entre mayúsculas y minúsculas. Por lo tanto, los códigos de color"#FF8800"
,"#ff8800"
,"#F80"
y"#f80"
son equivalentes.
Como alternativa, puede especificar algunos colores frecuentes por su nombre. En esta tabla, se enumeran las opciones de color con su nombre, los tripletes RGB equivalentes y los códigos de color hexadecimales.
Nombre del color | Nombre corto | Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|---|---|
"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" | No se aplica | No se aplica | No se aplica | Sin color |
En esta tabla, se enumeran las paletas de colores predeterminados para las gráficas en los temas claro y oscuro.
Paleta | Colores de la paleta |
---|---|
Antes de R2025a: La mayoría de las gráficas utilizan estos colores de forma predeterminada. |
|
|
|
Puede obtener los tripletes RGB y los códigos de color hexadecimales de estas paletas usando las funciones orderedcolors
y rgb2hex
. Por ejemplo, puede obtener los tripletes RGB de la paleta "gem"
y convertirlos en códigos de color hexadecimales.
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
Antes de R2023b: Obtenga los tripletes RGB usando RGB = get(groot,"FactoryAxesColorOrder")
.
Antes de R2024a: Obtenga los códigos de color hexadecimales usando H = compose("#%02X%02X%02X",round(RGB*255))
.
Ejemplo: b = bar(1:10,'EdgeColor','red')
Ejemplo: b.EdgeColor = [0 0.5 0.5];
Ejemplo: b.EdgeColor = 'flat';
Ejemplo: b.EdgeColor = '#D2F9A7';
Color de relleno, especificado como 'flat'
, triplete RGB, código de color hexadecimal, nombre de color o nombre corto. La opción 'flat'
utiliza el valor de la propiedad CData
del objeto Bar
para colorear las caras.
Para definir un color personalizado, especifique un triplete RGB o un código de color hexadecimal.
Un triplete RGB es un vector fila de tres elementos, cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el rango
[0,1]
, por ejemplo[0.4 0.6 0.7]
.Un código de color hexadecimal es un escalar de cadena o un vector de caracteres que comienza con el símbolo de almohadilla (
#
) seguido de tres o seis dígitos hexadecimales, que pueden oscilar entre0
yF
. Los valores no distinguen entre mayúsculas y minúsculas. Por lo tanto, los códigos de color"#FF8800"
,"#ff8800"
,"#F80"
y"#f80"
son equivalentes.
Como alternativa, puede especificar algunos colores frecuentes por su nombre. En esta tabla, se enumeran las opciones de color con su nombre, los tripletes RGB equivalentes y los códigos de color hexadecimales.
Nombre del color | Nombre corto | Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|---|---|
"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" | No se aplica | No se aplica | No se aplica | Sin color |
En esta tabla, se enumeran las paletas de colores predeterminados para las gráficas en los temas claro y oscuro.
Paleta | Colores de la paleta |
---|---|
Antes de R2025a: La mayoría de las gráficas utilizan estos colores de forma predeterminada. |
|
|
|
Puede obtener los tripletes RGB y los códigos de color hexadecimales de estas paletas usando las funciones orderedcolors
y rgb2hex
. Por ejemplo, puede obtener los tripletes RGB de la paleta "gem"
y convertirlos en códigos de color hexadecimales.
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
Antes de R2023b: Obtenga los tripletes RGB usando RGB = get(groot,"FactoryAxesColorOrder")
.
Antes de R2024a: Obtenga los códigos de color hexadecimales usando H = compose("#%02X%02X%02X",round(RGB*255))
.
A partir de la versión R2017b, el valor predeterminado es un triplete RGB de la propiedad ColorOrder
de los ejes. En versiones anteriores, el valor predeterminado era 'flat'
y los colores estaban basados en el mapa de colores.
Ejemplo: b = bar(1:10,'FaceColor','red')
Ejemplo: b.FaceColor = [0 0.5 0.5];
Ejemplo: b.FaceColor = 'flat';
Ejemplo: b.FaceColor = '#D2F9A7';
Datos de color, especificados como uno de estos valores:
Triplete RGB: se aplica un único valor de color RGB a todas las barras.
Matriz de tres columnas: un color por barra. Cada fila de la matriz especifica un triplete RGB para una barra concreta.
Escalar: se aplica un único color a todas las barras. El color procede del mapa de colores.
Vector: un color por barra. Los colores proceden del mapa de colores.
De forma predeterminada, cuando se crea una gráfica de barras, la propiedad CData
contiene una matriz de tres columnas de tripletes RGB. Puede cambiar el color de una barra concreta cambiando la fila correspondiente en la matriz.
Esta propiedad se aplica solo cuando la propiedad FaceColor
o EdgeColor
están establecidas en 'flat'
.
Ejemplo
Cambie el color de una barra concreta estableciendo la propiedad FaceColor
en 'flat'
. A continuación, cambie la fila correspondiente en la matriz CData
al triplete RGB nuevo. Por ejemplo, cambie el color de la segunda barra.
b = bar(1:10,'FaceColor','flat'); b.CData(2,:) = [0 0.8 0.8];
Valor de la línea de referencia, especificado como valor escalar numérico.
El valor de referencia que especifica se aplica o bien al eje x o bien al eje y en función de la orientación de la gráfica de barras. Si cambia la orientación de la gráfica de barras de vertical a horizontal, o viceversa, el valor de la línea de referencia podría cambiar. Establezca la propiedad BaseValue
después de establecer la propiedad Horizontal
.
Estilo de línea de los contornos de las barras, especificado como uno de los estilos de línea de esta tabla.
Estilo de línea | Descripción | Línea resultante |
---|---|---|
"-" | Línea continua |
|
"--" | Línea discontinua |
|
":" | Línea de puntos |
|
"-." | Línea de puntos y rayas |
|
"none" | Sin línea | Sin línea |
Anchura de los contornos de las barras, especificada como valor positivo en unidades de punto. Un punto equivale a 1/72 pulgadas.
Ejemplo: 1.5
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Argumentos de salida
objetos Bar
. Utilice los elementos de b
para acceder y modificar las propiedades de un objeto Bar
después de crearlo. El número de objetos Bar
depende del tamaño de y
. Si y
es un vector, b
es un objeto Bar
. Si y
es una matriz, b
es un vector que contiene un objeto Bar
para cada serie de y
.
Más acerca de
Una serie de barras consta de todas las ubicaciones de X
para un conjunto concreto de datos. De forma predeterminada, cada serie de barras está indicada con un color diferente.
Un grupo consta de todas las barras de una ubicación concreta en X
.
Capacidades ampliadas
La función bar
es compatible con entradas de arreglos de GPU con estas notas y limitaciones de uso:
Esta función acepta arreglos de GPU, pero no se ejecuta en una GPU.
Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Notas y limitaciones de uso:
Esta función opera sobre arreglos distribuidos, pero se ejecuta en el cliente MATLAB.
Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006aCuando cree una gráfica de barras, puede especificar las etiquetas de barra como vector de cadenas o arreglo de celda de vectores de caracteres. Las etiquetas de marca de barra aparecen en el orden en que las especifique.
Consulte también
Funciones
Propiedades
Temas
Sitios web externos
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.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)