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
Crear una gráfica de barras
Especificar las ubicaciones de las barras
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)
Especificar las ubicaciones de las barras como vector de cadena
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)
Especificar la anchura de las barras
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)
Mostrar grupos de barras
Mostrar barras apiladas
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')
Mostrar una barra apilada
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;
Mostrar barras apiladas con datos negativos
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')
Especificar datos categóricos
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)
Especificar etiquetas en los finales de las barras
Defina vals
como una matriz que contiene 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 que contiene dos objetos Bar
.
x = [1 2 3]; vals = [2 3 6; 11 23 26]; b = bar(x,vals);
Muestre los valores 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')
Especificar los ejes de una gráfica de barras
Desde la versión R2019b
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')
Especificar el color de las barras
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')
Especificar el color de las barras y del contorno
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)
Controlar los colores de las barras individuales
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];
Gráfica de barras con colores del mapa de colores
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
Especificar la paleta de colores
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")
Personalizar una serie en barras agrupadas o apiladas
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
x
— Coordenadas x
escalar | vector | matriz | arreglo de cadenas | arreglo de celdas de vectores de caracteres
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, pero el tamaño de x
depende del tamaño de y
y de cómo desee mostrar los datos. Esta tabla describe las situaciones más habituales.
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)
y
— Coordenadas y
escalar | vector | matriz
Coordenadas y, especificadas como escalar, vector o matriz. El tamaño de y
depende del tamaño de x
y de cómo desee mostrar los datos. Esta tabla describe las situaciones más habituales.
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
width
— Ancho de barra
0.8
(predeterminado) | escalar
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
style
— Estilo de grupo
'grouped'
(predeterminado) | 'stacked'
| 'hist'
| 'histc'
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
— Color de las barras
nombre del color | nombre corto
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' | |
ax
— Objeto de ejes
objeto de ejes
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'
.
EdgeColor
— Color del contorno
'flat'
| Triplete RGB | código de color hexadecimal | 'r'
| 'g'
| 'b'
| ...
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 |
A continuación, se indican los tripletes RGB y los códigos de color hexadecimales de los colores predeterminados que MATLAB® utiliza en muchos tipos de gráficas.
Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|
[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" |
Ejemplo: b = bar(1:10,'EdgeColor','red')
Ejemplo: b.EdgeColor = [0 0.5 0.5];
Ejemplo: b.EdgeColor = 'flat';
Ejemplo: b.EdgeColor = '#D2F9A7';
FaceColor
— Color de relleno
'flat'
| Triplete RGB | código de color hexadecimal | 'r'
| 'g'
| 'b'
| ...
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 |
A continuación, se indican los tripletes RGB y los códigos de color hexadecimales de los colores predeterminados que MATLAB utiliza en muchos tipos de gráficas.
Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|
[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" |
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';
CData
— Datos de color
Triplete RGB | matriz de tres columnas | escalar | vector
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];
BaseValue
— Valor de la línea de referencia
0
(predeterminado) | valor escalar numérico
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
.
LineStyle
— Estilo de línea de los contornos de las barras
'-'
(predeterminado) | '--'
| ':'
| '-.'
| 'none'
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 |
LineWidth
— Anchura de los contornos de las barras
0.5
(predeterminado) | valor positivo
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
b
— objetos Bar
objetos Bar
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
Serie de barras
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.
Grupo de barras
Un grupo consta de todas las barras de una ubicación concreta en X
.
Capacidades ampliadas
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
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).
Arreglos distribuidos
Realice particiones de arreglos grandes por toda la memoria combinada de su cluster mediante 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 R2006aR2023b: Especifique las etiquetas de barra como vectores de cadenas o arreglos de celdas de vectores de caracteres
Cuando 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
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)