[英]ggplot2: Adding mean on individual data with standard error from 2 variables
這是我第一次使用這個平台。 我希望我做對了。 我試圖在來自兩個組的標准 geom_point() 圖中的單個數據之上添加一個組均值。 我很快就涵蓋了那部分(見下面的代碼)。 我想顯示的數據來自兩個連續變量。
問題是我希望組均值不僅代表均值,還代表均值的標准誤差(來自兩個變量中的每一個)。 我認為根據每個變量具有不同高度和寬度的“+”號將是一個好主意,但我找不到任何地方如何更改單個點的高度和寬度(單獨)。
到目前為止,代碼類似於:
DataMean <- Data %>%
group_by(Group) %>%
summarise(x = mean(x),
y= mean(y))
ggplot(Data, aes(x = x, y = y, shape = as.factor(Group))) +
geom_point() +
geom_point(data = DataMean, size = 4, shape = 3)
形狀 3 是 R 中的“+”符號。但是,我不知道如何更改該“+”符號的垂直/水平條的高度/寬度以使其對應於每個組的標准誤差意思。 到目前為止,我得到了下面的圖表。
謝謝,祝你有美好的一天。 圖形
為了繪制范圍與數據可變性(均值的標准誤差)成正比的交叉圖,請使用兩個geom_linerange
圖層,其范圍基於標准誤差計算。
library(dplyr)
library(ggplot2)
DataMean <- Data %>%
group_by(Group) %>%
summarise(across(everything(), list(mean = mean, sd = sd), .names = "{.col}_{.fn}"))
DataMean
## A tibble: 3 x 5
# Group x_mean x_sd y_mean y_sd
# <fct> <dbl> <dbl> <dbl> <dbl>
#1 setosa 1.46 0.174 0.246 0.105
#2 versicolor 4.26 0.470 1.33 0.198
#3 virginica 5.55 0.552 2.03 0.275
ggplot() +
geom_point(data = Data, aes(x, y, group = Group)) +
# vertical bars
geom_linerange(
data = DataMean,
mapping = aes(
x = x_mean,
ymin = y_mean - y_sd, ymax = y_mean + y_sd)) +
# horizontal bars
geom_linerange(
data = DataMean,
mapping = aes(
x = x_mean, xmin = x_mean - x_sd, xmax = x_mean + x_sd,
y = y_mean)
) +
theme_bw()
Data <- iris[3:5]
names(Data) <- c("x", "y", "Group")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.