Fecha de la ultima revisión

## [1] "2026-04-15"

Activar los paquetes

library(tidyverse) # paquete para manipulación de datos
library(ggversa) # paquete con datos 
library(janitor) # paquete para limpiar los nombres de las columnas
library(gridExtra) # paquete para organizar los gráficos

Subir los datos

DW=dipodium
DW=clean_names(DW)

DW
## # A tibble: 1,365 × 21
##    tree_number tree_species   dbh plant_number ramet_number distance orientation
##          <int> <chr>        <dbl>        <int>        <int>    <dbl>       <dbl>
##  1           1 E.o           75              1            1     2.47          40
##  2           1 E.o           76              2            1     1.97          50
##  3           2 E.o           76              3            1     1.95         350
##  4           3 E.o           58              4            1     3.24         210
##  5           4 E.o           NA              5            1     0.85          80
##  6           5 E.o           59              6            1     2.62         160
##  7           5 E.o           59              7            1     2.82         170
##  8           6 E.o            8              8            1     3.12         245
##  9           7 E.o           11.5            9            1     1.12         208
## 10           8 E.o            8.5           10            1     0.75         360
## # ℹ 1,355 more rows
## # ℹ 14 more variables: number_of_flowers <dbl>, height_inflo <dbl>,
## #   herbivory <chr>, row_position_nf <int>, number_flowers_position <int>,
## #   number_of_fruits <int>, perc_fr_set <dbl>, pardalinum_or_roseum <chr>,
## #   fruit_position_effect <int>, frutos_si_o_no <int>,
## #   p_or_r_infl_lenght <chr>, num_of_fruits <int>, species_name <chr>,
## #   cardinal_orientation <int>

Cuando usar geom_bar vs geom_histogram

En ggplot2, las funciones geom_bar() y geom_histogram() permiten representar datos mediante conteos, pero no son intercambiables porque cada una está diseñada para un tipo específico de variable y un modo particular de cálculo. geom_bar() se emplea cuando la variable en el eje x es categórica, ya que calcula automáticamente la frecuencia de observaciones por categoría. En contraste, geom_histogram() se utiliza para variables continuas, dividiendo el rango de valores en intervalos (bins) y contando cuántas observaciones caen dentro de cada uno para representar la distribución. Además, cuando los conteos o proporciones ya están pre‑calculados, la geometría apropiada es geom_col(), que simplemente representa los valores proporcionados. Por ello, la elección entre ambas funciones depende tanto de la naturaleza discreta o continua de la variable como de si los conteos deben ser generados por el gráfico o provienen de un resumen previo.

Una variable discreta: Gráfico de barras con geom_bar

El gráfico de barras es una herramienta adecuada para representar la frecuencia de ocurrencia de eventos asociados a valores discretos o categóricos, como respuestas “sí/no”, clases taxonómicas, tratamientos experimentales, entre otros. La función geom_bar() genera este tipo de visualización al contar automáticamente cuántas veces aparece cada categoría en el conjunto de datos. La altura de cada barra refleja, por tanto, el número de observaciones correspondientes a la categoría situada en el eje X.

En el siguiente ejemplo, comenzaremos por eliminar los valores perdidos utilizando la función drop_na(), la cual excluye todas las filas que contienen valores NA. Posteriormente, emplearemos nuevamente el conjunto de datos de Dipodium rosea para ilustrar el uso de geom_bar().

DW$number_of_flowers  # Antes de hacer los análisis mira los datos, y vea que hay muchas filas con **NA**, remueve **#** para activar la función. 
##    [1] 11 19 18 24 25 17 19 14 16 23 14  4 23 21 21 16 NA 13 33 15 17 14 23 30
##   [25] 28 18 17 35 13 30 32 21 28 14 14 16 24 15 26 26 20 14 23 24 21 19 26 22
##   [49] 19  3 36 32 21 23 23 16 22 13 24 28 28 24  5  9 37 24 18 27 29 24 24 29
##   [73] 16 24 18  5 20 12 19 25 NA NA NA 32 21 26 29 22 14 22 21 22 21  8 11 17
##   [97] 24 14 23 23 17 10 33 14 12 25 28 27 23 12 17 18 23 22 25  9 18 NA NA NA
##  [121] 25 12 13 NA NA NA 27 NA 11 17 NA 32 15 25 27 23 29 24 NA 43 27 33 27 25
##  [145] 16 29 NA 17 31 12  7 17 35 19 32 18 22 12 10 15 16 NA 21 14 16 12 34 14
##  [169] 17 28 20 23 13 16 27 11 15 28  1 11  6 14 28 26 30 18 26 33 20 20 23  6
##  [193] 30 20 21 19 19 31 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [217] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [241] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [265] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [289] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [313] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [337] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [361] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [385] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [409] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [433] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [457] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [481] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [505] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [529] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [553] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [577] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [601] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [625] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [649] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [673] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [697] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [721] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [745] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [769] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [793] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [817] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [841] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [865] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [889] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [913] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [937] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [961] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [985] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1009] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1033] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1057] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1081] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1105] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1129] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1153] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1177] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1201] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1225] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1249] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1273] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1297] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1321] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1345] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 60 60
# Method 1

head(DW, n=7)
## # A tibble: 7 × 21
##   tree_number tree_species   dbh plant_number ramet_number distance orientation
##         <int> <chr>        <dbl>        <int>        <int>    <dbl>       <dbl>
## 1           1 E.o             75            1            1     2.47          40
## 2           1 E.o             76            2            1     1.97          50
## 3           2 E.o             76            3            1     1.95         350
## 4           3 E.o             58            4            1     3.24         210
## 5           4 E.o             NA            5            1     0.85          80
## 6           5 E.o             59            6            1     2.62         160
## 7           5 E.o             59            7            1     2.82         170
## # ℹ 14 more variables: number_of_flowers <dbl>, height_inflo <dbl>,
## #   herbivory <chr>, row_position_nf <int>, number_flowers_position <int>,
## #   number_of_fruits <int>, perc_fr_set <dbl>, pardalinum_or_roseum <chr>,
## #   fruit_position_effect <int>, frutos_si_o_no <int>,
## #   p_or_r_infl_lenght <chr>, num_of_fruits <int>, species_name <chr>,
## #   cardinal_orientation <int>
DW %>%
  drop_na(number_of_flowers)%>%
  ggplot(aes(number_of_flowers))+
  geom_bar(fill="red",color="white")+
  xlab("Cantidad de Flores")+
  ylab("Frecuencia")+
  theme(axis.title=element_text(size=14,face="bold"))

#names(DW)
DW %>% drop_na(pardalinum_or_roseum) %>% 
  ggplot(aes(pardalinum_or_roseum))+
  geom_bar(fill="red",color="white")+
  xlab("Especies de Dipodium")+
  ylab("Frecuencia")+
  theme(axis.title=element_text(size=14,face="bold"))

Cambio de intensidad de color con alpha

Se puede cambiar la intensidad del color de las barras usando alpha. los valores pueden variar de 0 a 1, donde 1 es mas intenso el color, aquí se utiliza un alpha=0.3.

head(DW)
## # A tibble: 6 × 21
##   tree_number tree_species   dbh plant_number ramet_number distance orientation
##         <int> <chr>        <dbl>        <int>        <int>    <dbl>       <dbl>
## 1           1 E.o             75            1            1     2.47          40
## 2           1 E.o             76            2            1     1.97          50
## 3           2 E.o             76            3            1     1.95         350
## 4           3 E.o             58            4            1     3.24         210
## 5           4 E.o             NA            5            1     0.85          80
## 6           5 E.o             59            6            1     2.62         160
## # ℹ 14 more variables: number_of_flowers <dbl>, height_inflo <dbl>,
## #   herbivory <chr>, row_position_nf <int>, number_flowers_position <int>,
## #   number_of_fruits <int>, perc_fr_set <dbl>, pardalinum_or_roseum <chr>,
## #   fruit_position_effect <int>, frutos_si_o_no <int>,
## #   p_or_r_infl_lenght <chr>, num_of_fruits <int>, species_name <chr>,
## #   cardinal_orientation <int>
# [df(fila,columas)]

b=ggplot(DW[!is.na(DW$number_of_flowers),],
         aes(number_of_flowers))
b+geom_bar(alpha=.3,
               fill="blue",color="white")+
  xlab("Posiciones de las \n flores en la inflorescencia")+
  ylab("Frecuencia")+
  theme(axis.title=element_text(size=14,face="bold"))


Figura: Lepanthes eltoroensis, EL Yunque, Puerto Rico

Figura: Lepanthes eltoroensis, EL Yunque, Puerto Rico

  1. Seleccione el archivo “Lelto” en el paquete “ggversa”. Seleccione la variable adultos y juvenil, que representa la cantidad de plantas adulto y juvenil que se encuentra en el árbol. Los datos son de una pequeñita orquídea que esta limitado las veredas del “El Toro” y de los “Vientos Alizios” en el Yunque.
    • Mire el nombre de las columnas primero
    • haz un gráfico de los adultos y otro de los juveniles
    • Cambie de color las barras en por lo menos una de las graficas
    • Cambie el nombre de los nombres de los ejes
    • Une las dos figuras en una sola
    • Sube el .html a MSTeam
names(Lelto)
##  [1] "Tree"         "Trail"        "Distance"     "Alt_m"        "Angulo"      
##  [6] "Rango_rad"    "Localizacion" "Inclinacion"  "DBH"          "Plantulas"   
## [11] "Juveniles"    "Adultos"      "T_Num"        "Lado_vereda"  "lat"         
## [16] "long"
head(Lelto)
##   Tree Trail Distance Alt_m Angulo Rango_rad Localizacion Inclinacion  DBH
## 1  203    Tw        0   780    260  4.535556          230          50 18.1
## 2  204    Tw      228   783    158  2.756222          220          40 23.2
## 3  205    Tw       38   783     90  1.570000           30          30 10.6
## 4  206    Tw       28   785    355  6.192778          250          40 10.8
## 5  209    Tw       47   790    340  5.931111          260          55 14.1
## 6  210    Tw        7   790    350  6.105556          180          30 11.4
##   Plantulas Juveniles Adultos T_Num Lado_vereda     lat      long
## 1         6        21       5    32   izquierda 18.2875 -65.80417
## 2         7        12       7    26   izquierda 18.2925 -65.80580
## 3         2         2       0     4     derecha 18.2922 -65.80670
## 4         6        21       5    32   izquierda 18.2919 -65.80640
## 5         5        10       0    15     derecha 18.2911 -65.80780
## 6         0        10       8    18   izquierda 18.2914 -65.80780

How to put two ggplot2 plots side by side using the cowplot package in R


Multiples grupos

Ahora incorporaremos una segunda variable discreta que distingue entre plantas con frutos y plantas sin frutos, con el fin de representar sus frecuencias a lo largo de las distintas posiciones de la flor en la inflorescencia. En el script se observa que la variable Frutos_si_o_no ha sido convertida en un factor. Esto es necesario porque, en el archivo original, la presencia o ausencia de frutos y flores fue codificada numéricamente mediante valores 1 y 0. Si la columna hubiese utilizado categorías explícitas como “Sí” o “No”, no sería necesario convertirla en factor, ya que ggplot2 las reconocería directamente como categorías. Sin embargo, al tratarse de valores numéricos, es indispensable especificar que corresponden a clases discretas mediante factor().

El gráfico resultante presenta ambas categorías discretas superpuestas (posición por defecto: “stack”), de modo que la frecuencia del segundo grupo se suma a la del primero, tal como ocurre con geom_histogram() cuando se utiliza un segundo factor para apilar las frecuencias. De esta manera, la altura total de cada barra refleja el número acumulado de plantas para ambas categorías en cada posición de la inflorescencia.

DW%>%
  select(fruit_position_effect,frutos_si_o_no )%>% # Selecciona las variables
  drop_na(fruit_position_effect)%>% # Remueve los NA
ggplot(aes(fruit_position_effect))+ # Asigna la variable continua
geom_bar(aes(fill=factor(frutos_si_o_no)))+ # Asigna la variable discreta
  xlab("Posiciones de las flores \n en la inflorescencia")+
  ylab("Frecuencia")+
  theme(axis.title=element_text(size=14,face="bold"))+
 scale_fill_manual(values = c("green", "#36211D"))+
 scale_color_manual(values = c("yellow", "blue"))

head(Lelto)
##   Tree Trail Distance Alt_m Angulo Rango_rad Localizacion Inclinacion  DBH
## 1  203    Tw        0   780    260  4.535556          230          50 18.1
## 2  204    Tw      228   783    158  2.756222          220          40 23.2
## 3  205    Tw       38   783     90  1.570000           30          30 10.6
## 4  206    Tw       28   785    355  6.192778          250          40 10.8
## 5  209    Tw       47   790    340  5.931111          260          55 14.1
## 6  210    Tw        7   790    350  6.105556          180          30 11.4
##   Plantulas Juveniles Adultos T_Num Lado_vereda     lat      long
## 1         6        21       5    32   izquierda 18.2875 -65.80417
## 2         7        12       7    26   izquierda 18.2925 -65.80580
## 3         2         2       0     4     derecha 18.2922 -65.80670
## 4         6        21       5    32   izquierda 18.2919 -65.80640
## 5         5        10       0    15     derecha 18.2911 -65.80780
## 6         0        10       8    18   izquierda 18.2914 -65.80780

Posicionar las barras uno al lado del otro

Cuando se trabaja con dos variables discretas, como la posición de la flor en la inflorescencia y la presencia o ausencia de frutos, el comportamiento por defecto de geom_bar() es apilar las categorías (posición = “stack”). Sin embargo, en muchas ocasiones es más informativo comparar los grupos directamente, colocándolos uno al lado del otro dentro de cada categoría principal del eje X.

Para lograr esta presentación comparativa se utiliza el argumento:

DW%>%
  select(fruit_position_effect,frutos_si_o_no )%>%
  drop_na(fruit_position_effect)%>%
  ggplot(aes(fruit_position_effect))+
  geom_bar(aes(fill=factor(frutos_si_o_no)),color="white",
           position = "dodge")+
  xlab("Posiciones de las flores en la inflorescencia")+
  ylab("Frecuencia")+
  guides(fill=FALSE)+
  theme(axis.title=element_text(size=14,face="bold"))


Posicionar las barras una encima de la otra

En el siguiente gráfico exploraremos una alternativa diferente a la apilación automática que realiza geom_bar() cuando se trabaja con dos variables discretas. Al utilizar el argumento:

ggplot2 ya no apila automáticamente las barras ni las coloca una al lado de la otra. En cambio, representa cada barra exactamente en su posición original, iniciando ambas en cero y dibujándolas una encima de la otra en el mismo espacio del eje X. En otras palabras, “identity” instruye a geom_bar() a no realizar ninguna transformación espacial en la posición de las barras. El resultado es que cada categoría del factor secundario (por ejemplo, con frutos y sin frutos) ocupa exactamente el mismo ancho y la misma ubicación sobre el eje horizontal, lo que conduce a una superposición gráfica completa. Este comportamiento puede ser útil en situaciones específicas, como cuando:

se desea comparar dos distribuciones exactamente en el mismo espacio, se emplea transparencia (alpha) para visualizar la superposición, se busca resaltar coincidencias o diferencias mediante colores semitransparentes, o cuando la densidad visual es relevante para la interpretación.

A continuación se muestra un ejemplo usando los datos de Dipodium rosea. La superposición es total, ya que ambas barras comienzan desde cero en cada posición de la inflorescencia:

DW%>%
  select(fruit_position_effect,frutos_si_o_no )%>%
  drop_na(fruit_position_effect)%>%
  ggplot(aes(fruit_position_effect))+
  geom_bar(aes(fill=factor(frutos_si_o_no)),color="white",
           position = "identity")+ # Para que cada grupo comience en cero
  xlab("Posiciones de las flores en la inflorescencia")+
  ylab("Frecuencia")+
  guides(fill=FALSE)+
  theme(axis.title=element_text(size=14,face="bold"))


Porcentaje porporcional a todos los valores

Para representar las proporciones de cada grupo dentro del conjunto total de observaciones, es necesario transformar los conteos en porcentajes. En ggplot2, esto se realiza especificando en el argumento estético y la relación:

y=(..count..)/sum(..count..).

Esta expresión indica a ggplot2 que tome el conteo de cada barra (..count..) y lo divida entre la suma total de los conteos dentro del conjunto de datos representado. Como consecuencia, la altura de cada barra refleja la proporción de casos dentro de la categoría correspondiente, y la suma de todas las barras del gráfico equivale a 100%.

Este enfoque es muy útil cuando el interés no es comparar números absolutos, sino comprender qué fracción del total representa cada categoría o cada combinación de categorías.

fill=factor(Frutos_si_o_no)

DW%>%
  select(fruit_position_effect,frutos_si_o_no )%>%
  drop_na(fruit_position_effect)%>%
  ggplot(aes(fruit_position_effect))+
  geom_bar(aes(y=(..count..)/sum(..count..), 
               fill=factor(frutos_si_o_no)),
               color="white", position="dodge")+ # Para que cada grupo comience en cero se usa position = "identity"
  xlab("Posiciones de las flores en la inflorescencia")+
  ylab("Frecuencia")+
  guides(fill=FALSE)+
  theme(axis.title=element_text(size=14,face="bold"))



Porcentaje por valores de cada X

Cuando se desea que cada barra represente el 100% de los grupos dentro de cada categoría del eje X, se emplea el argumento:

position=“fill”.

Esta opción transforma automáticamente los conteos en proporciones relativas dentro de cada categoría, de modo que todas las barras tienen la misma altura (equivalente al 100%), y las diferencias entre grupos se expresan como partes proporcionales dentro de cada barra. En el siguiente ejemplo se incorpora una variable discreta—en este caso, la presencia de frutos (verde) o su ausencia (rojo). La visualización resultante permite identificar patrones ecológicos relevantes. Por ejemplo, se observa que en las posiciones superiores de la inflorescencia ( > 27 ), el porcentaje de flores que desarrollan frutos es notablemente menor en comparación con las posiciones basales. Esto sugiere una posible disminución en el éxito reproductivo a medida que aumenta la posición de la flor en la inflorescencia, un patrón consistente con gradientes de recursos, limitaciones energéticas o efectos posicionales comunes en plantas con inflorescencias alargadas.

require(scales)

DW%>%
  select(fruit_position_effect,frutos_si_o_no )%>%
  drop_na(fruit_position_effect)%>%
ggplot(aes(factor(fruit_position_effect),
             fill=factor(frutos_si_o_no)))+
geom_bar(aes(y=(..count..)/sum(..count..)),
           position="fill")+ # Para que cada columna sume a 1.0 se usa position = "fill"
  xlab("Posiciones de las flores en la inflorescencia")+
  ylab("Proporción")+
    guides(fill=FALSE)+
  theme(axis.title=element_text(size=10,face="bold"))


  1. Seleccione el archivo “Lelto” en el paquete “ggversa”. Seleccione la variable adultos o juvenil, que representa la cantidad de plantas adulto o juvenil que se encuentra en el árbol. Los datos son de una pequeñita orquídea que esta limitado las veredas del “El Toro” y de los “Vientos Alizios” en el Yunque. Primero se va unir las columnas de juvenil con las de adultos, para después hacer un gráfico donde cada columna sume a 1.0 se usa position = “fill”.

    – paso 1

    head(Lelto)

    – paso 2

    df=Lelto %>% select(Juveniles, Adultos)

    – paso 3

    dfLelto = df%>% gather(key=“Estado”, value=“Conteos”) # gather( ) recuerda esta función, siempre me hace dificil encontrarla en el web.

    – Mire el nombre de las columnas primero y como esta organiado

    • Cambie de color las barras
    • Cambie el nombre de los nombres de los ejes
    • Salva el gráfico con extensión de .png
    • Sube el gráfico a .png a MSTeam

Cambiar el orden de las barras

Para modificar el orden en que aparecen las barras en un gráfico, puede utilizarse la función reorder(), la cual permite ordenar los niveles de una variable categórica según los valores de otra variable asociada. En el siguiente ejemplo, las barras se ordenan de mayor a menor para facilitar la comparación visual. En el conjunto de datos de Dipodium rosea, esto resulta en que las posiciones de las flores en la inflorescencia se muestren ordenadas de la más alta a la más baja, proporcionando una representación más intuitiva del gradiente posicional.

library(forcats)

DW%>%
  select(fruit_position_effect,frutos_si_o_no )%>%
  drop_na(fruit_position_effect)%>%
ggplot(aes(reorder(factor(fruit_position_effect),-fruit_position_effect),
             fill=factor(frutos_si_o_no)))+
  geom_bar(aes(y=(..count..)/sum(..count..)))+
  xlab("Posiciones de las flores en la inflorescencia")+
  ylab("Proporción de flores con frutos")+
  guides(fill=FALSE)+
  theme(axis.title=element_text(size=14,face="bold"))+
  scale_fill_manual(values = c("red", "green"))

df=c(1:10)
df
##  [1]  1  2  3  4  5  6  7  8  9 10
-sort(df)
##  [1]  -1  -2  -3  -4  -5  -6  -7  -8  -9 -10
order(-df)
##  [1] 10  9  8  7  6  5  4  3  2  1

Opciones y Parametros de geom_bar:

  • ggplot(el archivo de datos, aes(la variable continua))
  • geom_bar(stat=bin, x, y, alpha, color, fill, linetype, size)
    • alpha: la intensidad del color
    • fill: el color de la barra
    • color: el color de la línea alrededor de la barra
    • linetype: representa el estilo de línea
    • size: representa el grosor de la línea
    • weight; para modificar el valor original; entonces no sería, por ejemplo, el conteo/suma de los valores si no un valor ponderado (promedio ponderado).