簡體   English   中英

繪制 log10 值時與 stat_summary() 的差異

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM