Blogul lui Zhenguo Zhang/2025/04/6/R-how-to-create-an-eror-barplot-cu-overlaid-puncte-ussing-ggplot/-
library(ggplot2) library(dplyr)
Uneori poate doriți să creați un complot cu următoarele caracteristici:
- un punct pentru a indica media unui grup
- bare de eroare pentru a indica abaterea standard a grupului
- Și fiecare grup poate avea subgrupuri, care sunt reprezentate de culori diferite.
În această postare, vă voi arăta cum să creați un astfel de complot folosind ggplot2
Pachet în R.
Vom folosi construcția mtcars
Set de date ca exemplu. Și trebuie să calculăm următoarele variabile pentru utilizare ulterioară:
- Media MPG pentru fiecare grup de
cyl
(numărul de cilindri) șigear`` (number of gears), here
cilis the main group and
Gear` este subgrupul.
# Load the mtcars dataset data(mtcars) # Compute the mean and standard deviation of mpg for each group mtcars_summary <- mtcars %>% group_by(cyl, gear) %>% summarise(mean_mpg = mean(mpg), sd_mpg = sd(mpg)) %>% ungroup() # replace the NA values in sd_mpg with 1 mtcars_summary$sd_mpg(is.na(mtcars_summary$sd_mpg)) <- 1 # convert group variables into factors mtcars_summary$cyl <- factor(mtcars_summary$cyl) mtcars_summary$gear <- factor(mtcars_summary$gear)
Creați complotul – mai întâi încercați
Acum putem crea complotul folosind ggplot2
. Vom folosi geom_point()
funcționare pentru a crea punctele și geom_errorbar()
Funcție pentru a crea barele de eroare. Vom folosi și aes()
Funcție pentru a specifica estetica complotului.
# Create the plot plt <- ggplot(mtcars_summary, aes(x = cyl, y = mean_mpg, color = gear)) + geom_point(size = 3) + # add points geom_errorbar(aes(ymin = mean_mpg - sd_mpg, ymax = mean_mpg + sd_mpg), width = 0.2) + # add error bars labs(x = "Number of Cylinders", y = "Mean MPG", color = "Number of Gears") + # add labels theme_minimal() + # use a minimal theme theme(legend.position = "top") # move the legend to the top plt
Ei bine, funcționează, dar problema este că barele de eroare și punctele sunt aliniate în aceeași poziție a axei X. Nu asta ne dorim. Vrem ca subgrupurile să fie separate la o distanță mică.
Creați complotul – a doua încercare
Pentru a separa subgrupurile, putem folosi position_dodge()
funcţie. Această funcție va muta punctele și barele de eroare la stânga și la dreapta, astfel încât acestea nu se suprapun.
pd <- position_dodge(width = 0.5) # Create the plot with position_dodge plt <- ggplot(mtcars_summary, aes(x = cyl, y = mean_mpg, color = gear)) + geom_point(size = 3, position = pd) + # add points with position_dodge geom_errorbar(aes(ymin = mean_mpg - sd_mpg, ymax = mean_mpg + sd_mpg), width = 0.2, position = pd) + # add error bars with position_dodge labs(x = "Number of Cylinders", y = "Mean MPG", color = "Number of Gears") + # add labels theme_minimal() + # use a minimal theme theme(legend.position = "top") # move the legend to the top plt
Rece. Nu-i aşa?
Singura diferență este că am adăugat position = pd
argument pentru geom_point()
şi geom_errorbar()
Funcții. Spune asta ggplot2
Pentru a folosi position_dodge()
Funcție pentru a separa subgrupurile.
Concluzie
În această postare, am învățat cum să creăm un complot cu bare de eroare și puncte suprapuse folosind ggplot2
Pachet în R. Am învățat, de asemenea, cum să separăm subgrupurile folosind position_dodge()
funcţie.
Dacă doriți să aflați mai multe despre funcție position_dodge()
puteți verifica o postare excelentă aici.
Programare fericită! 😃
-/2025/04/6/r-how-to-create-an-eror-barplot-cu puncte-suprapuse-utilizarea-utilizării-ggplot/-