[英]Differences with stat_summary() when plotting log10 values
我對下面代碼的結果感到有些困惑。 我稱為aux (數據)的數據框包含一個因子和一個定量變量。 我想根據因子的水平 plot 定量變量的平均值。
該代碼還創建了包含這些分組平均值的第二個數據框。
然后有兩個情節。 第一個對我來說很好:它以兩種不同的方式繪制正確的值,即在原始aux數據幀上使用stat_summary()或在aux.grouped數據幀上使用 geom_point( ) 。
但是,當我嘗試 plot 定量變量的log10值時, stat_summary()不會像我預期的那樣 plot。 我知道在ggplot映射線上在aes下使用log10可能是這個問題的根源。 我沒有得到的是什么是stat_summary()繪圖而不是 plot,如果涉及到不匹配的映射問題,則改為非 log10 值。
非常感謝你的幫助。
最好的,
大衛
aux <- read.table("aux.txt", header = TRUE, sep = "\t")
aux$nb.NAs <- factor(aux$nb.NAs)
aux.grouped <- aux %>%
group_by(nb.NAs) %>%
dplyr::summarise(mean_values = mean(values))
ggplot(aux, aes(x = nb.NAs, y = values, group = nb.NAs)) +
stat_summary(geom = "point", fun = "mean", colour = "red", size = 10) +
geom_point(data = aux.grouped, aes(x = nb.NAs, y = mean_values), colour = "blue", size = 5)
ggplot(aux, aes(x = nb.NAs, y = log10(values), group = nb.NAs)) +
stat_summary(geom = "point", fun = "mean", colour = "red", size = 5) +
geom_point(data = aux.grouped, aes(x = nb.NAs, y = log10(mean_values)), colour = "blue", size = 5)
我認為這回答了你的問題。
df<-structure(list(nb.NAs = structure(c(2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L),
.Label = c("2", "3"), class = "factor"),
values = c(5584949.80357048, 8014873.492117, 17206608.4238154,
1524223.86730749, 5882593.98508629, 19907181.0901551,
4945004.91561103, 20886241.7691373, 51093766.9511132,
6436423.4434915)),
row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 12L, 16L), class = "data.frame")
df$nb.NAs <- factor(df$nb.NAs)
aux.grouped <- df %>%
group_by(nb.NAs) %>%
dplyr::summarise(mean_values = mean(values), mean_log10 = mean(log10(values)),
log10_mean = log10(mean(values)))
當您運行此代碼時,您會看到我以兩種不同的方式計算 log10 值,第一種是獲取 log10 值的平均值,而第二種是獲取平均值的 log10 值。 您的第二個 plot 緊隨后者(7.31 和 6.89)。 這就是為什么你會得到紅點和藍點之間的差異。你可以將這些值與你的第二個 plot 匹配並查看差異。
# A tibble: 2 x 4
nb.NAs mean_values mean_log10 log10_mean
* <fct> <dbl> <dbl> <dbl>
1 2 20531771. 7.19 7.31
2 3 7764603. 6.74 6.89
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.