¿Como cambiar el espacio espacio entre barras de cada grupo y el espacio entre grupos , en un grafico de barras utilizando ggplo2?

T vs nys

Examples:

library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.0.5
DF <- data.frame(Major = c("A", "A", "B", "B"),
                 Minor = c("X", "Y", "X", "Y"),
                 Value = c(5,6,7,4))

#Standard dodge
ggplot(DF, aes(Major, Value, fill = Minor)) + 
  geom_col(position = "dodge")

#position_dodge2 with default settings
ggplot(DF, aes(Major, Value, fill = Minor)) + 
  geom_col(position = position_dodge2())


#narrow width
ggplot(DF, aes(Major, Value, fill = Minor)) + 
  geom_col(width = 0.7, position = position_dodge2())


#narrow width and padding
ggplot(DF, aes(Major, Value, fill = Minor)) + 
  geom_col(width = 0.7, position = position_dodge2(padding = 0.3))

Created on 2021-08-26 by the reprex package (v0.3.0)

1 Like

consulta

consulta
Esto es lo que hice y me sale lo de la imagen anterior!nose que hice mal o quizás son mis datos que estan mal

Please post the result of
(Por favor, pegue aquí el resultado de)

dput(tresetapas)

consulta2

Please post the result of the function, not an image of it. I want to use the result in my code.
(Por favor peque el resultado, no un imagen del resultado. Quiero copiarlo y usarlo en mi código.)

1 Like

structure(list(Zona = c("costera", "intermedia", "oceanica",
"control", "costera", "intermedia", "oceanica", "control", "costera",
"intermedia", "oceanica", "control", "costera", "intermedia",
"oceanica", "control", "costera", "oceanica", "control", "costera",
"oceanica", "control"), NorteSur = c("Norte", "Norte", "Norte",
"Norte", "Sur", "Sur", "Sur", "Sur", "Norte", "Norte", "Norte",
"Norte", "Sur", "Sur", "Sur", "Sur", "Norte", "Norte", "Norte",
"Sur", "Sur", "Sur"), Fase = c("A", "A", "A", "A", "A", "A",
"A", "A", "D", "D", "D", "D", "D", "D", "D", "D", "DP", "DP",
"DP", "DP", "DP", "DP"), T = c(18.4, 18.51, 18.2, 18.5, 18.01,
17.91, 17.3, 17.2, 18.7, 18.7, 18.8, 18.6, 18.7, 18.9, 18.8,
18.5, 16.25, 16.35, 16.5, 16.2, 16.15, 16.1), MO = c(1.715, 0.955,
0.825, 1.3, 2, 1.16, 1.15, 1.07, 0.95, 0.4, 1.12, 1.17, 0.96,
0.98, 1.05, 0.47, 0.57, 0.43, 0.97, 0.59, 0.53, 0.26), Tiposedimento = c("arena media",
"arena fina", "arena muy fina", "arena fina", "arena fina", "arena media",
"arena gruesa", "arena gruesa", "arena fina", "arena fina", "arena gruesa",
"arena muy gruesa", "arena fina", "arena fina", "arena fina",
"arena gruesa", "arena fina", "arena gruesa", "arena muy fina",
"arena muy fina", "arena fina", "arena fina"), granulometria = c(2.9,
0, 5.85, 5.41, 8.44, 0.27, 0.41, 0, 4.8, 2.3, 3, 3, 4.8, 4.2,
4.8, 1.2, 2.4, 1.2, 1.2, 1.8, 2.4, 3)), row.names = c(NA, -22L
), class = c("tbl_df", "tbl", "data.frame"))

There are four values of T for Fase == "A" and NorteSur == "Norte". Do you want to plot the sum or the average of those values?

(Hay cuatro valores de T con Fase == "A" y NorteSur == "Norte". ¿Qué quiere mostrar en el gráfico, la suma o el promedio?)

DF[DF$Fase == "A" & DF$NorteSur == "Norte", ]
# A tibble: 4 x 7
  Zona       NorteSur Fase      T    MO Tiposedimento  granulometria
  <chr>      <chr>    <chr> <dbl> <dbl> <chr>                  <dbl>
1 costera    Norte    A      18.4 1.72  arena media             2.9 
2 intermedia Norte    A      18.5 0.955 arena fina              0   
3 oceanica   Norte    A      18.2 0.825 arena muy fina          5.85
4 control    Norte    A      18.5 1.3   arena fina              5.41

El promedio necesito mostrar.
Muchas gracias por su tiempo en resolver mi problema.

DF <- structure(list(Zona = c("costera", "intermedia", "oceanica",
                        "control", "costera", "intermedia", "oceanica", "control", "costera",
                        "intermedia", "oceanica", "control", "costera", "intermedia",
                        "oceanica", "control", "costera", "oceanica", "control", "costera",
                        "oceanica", "control"), 
                     NorteSur = c("Norte", "Norte", "Norte", "Norte", "Sur", "Sur", "Sur", 
                                  "Sur", "Norte", "Norte", "Norte", "Norte", "Sur", "Sur", 
                                  "Sur", "Sur", "Norte", "Norte", "Norte","Sur", "Sur", "Sur"), 
                     Fase = c("A", "A", "A", "A", "A", "A","A", "A", "D", "D", "D", "D", "D", 
                              "D", "D", "D", "DP", "DP","DP", "DP", "DP", "DP"), 
                     T = c(18.4, 18.51, 18.2, 18.5, 18.01,17.91, 17.3, 17.2, 18.7, 18.7, 18.8, 
                           18.6, 18.7, 18.9, 18.8,18.5, 16.25, 16.35, 16.5, 16.2, 16.15, 16.1), 
                     MO = c(1.715, 0.955,0.825, 1.3, 2, 1.16, 1.15, 1.07, 0.95, 0.4, 1.12, 1.17, 0.96,
                            0.98, 1.05, 0.47, 0.57, 0.43, 0.97, 0.59, 0.53, 0.26), 
                     Tiposedimento = c("arena media","arena fina", "arena muy fina", "arena fina", 
                                       "arena fina", "arena media","arena gruesa", "arena gruesa", 
                                       "arena fina", "arena fina", "arena gruesa","arena muy gruesa", 
                                       "arena fina", "arena fina", "arena fina","arena gruesa", 
                                       "arena fina", "arena gruesa", "arena muy fina",
                                       "arena muy fina", "arena fina", "arena fina"), 
                     granulometria = c(2.9,0, 5.85, 5.41, 8.44, 0.27, 0.41, 0, 4.8, 2.3, 3, 3, 
                                       4.8, 4.2,4.8, 1.2, 2.4, 1.2, 1.2, 1.8, 2.4, 3)), 
                row.names = c(NA, -22L), class = c("tbl_df", "tbl", "data.frame"))

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.0.5
DF %>% group_by(NorteSur, Fase) %>% summarize(Promed = mean(T)) %>% 
ggplot(aes(x = Fase, y = Promed, fill = NorteSur)) + geom_col(position = position_dodge2())
#> `summarise()` regrouping output by 'NorteSur' (override with `.groups` argument)

Created on 2021-08-26 by the reprex package (v0.3.0)

1 Like

Muchisimas Gracias por todo!sos un genio/a!
Saludos

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.