簡體   English   中英

如何在ggplot2中將stat_summary線添加到coord_polar圖?

[英]How to add stat_summary line to coord_polar plot in ggplot2?

我在facet_grid中排列了玫瑰花圖,顯示了2x2階乘實驗的直方圖數據。 在此處生成的模擬數據:

#GENERATE MOCK DATA-------------------------------------------------------------------------
Treatment <- c(rep("Vehicle", 50), rep("Drug", 50))
Cell <- c(rep("A", 25), rep("B", 25), rep("A", 25), rep("B", 25))
Response <- c(rnorm(25, 50, 120), rnorm(25, 30, 90), rnorm(25, 50, 120), rnorm(25, 30, 90))
Data <- data.frame(Treatment, Cell, Response)

然后,我生成像這樣的玫瑰花結圖:

#PLOT ROSETTES-------------------------------------------------------------------------------
library("ggplot2")
baseplot <- ggplot(data = Data, aes(x = Response, fill = Treatment))
baseplot + geom_bar(width = 4) + coord_polar() + facet_grid(Treatment~Cell) +
labs(y = "Frequency", x = "")

這是該圖的圖像 (實際的圖看起來更令人愉悅,出於演示目的,我忽略了有關重疊條形的錯誤)。

我想在每個方面添加一條線,從中心向外放射,標記每個因子組合的中位數。 我已經嘗試使用stat_summary來做到這一點,包括:

+ stat_summary(fun.y = "median", geom = "line)

但出現以下錯誤:

警告信息:

1:在is.na(x)中:is.na()應用於類型為“ NULL”的非(列表或向量)

2: stat_summary()計算失敗:參數暗示不同的行數:1,0

3:在is.na(x)中:is.na()應用於類型為'NULL'的非(列表或向量)

4: stat_summary()計算失敗:參數暗示不同的行數:1,0

5:在is.na(x)中:is.na()應用於類型為“ NULL”的非(列表或向量)

6: stat_summary()計算失敗:參數暗示不同的行數:1,0

7:在is.na(x)中:is.na()應用於類型為“ NULL”的非(列表或向量)

8: stat_summary()計算失敗:參數暗示不同的行數:1,0

我知道可能有一個簡單的解決方案,但是我一直在努力了解stat_summary的語法。 如果您能提供任何幫助,我將不勝感激。 我什至不介意先手動計算中位數並將其相加。

可能有一個不錯的stat_summary答案,但是我沒有看到它,因為您需要訪問..count..生成的geom_bar 還要注意, geom_line需要多個點才能畫一條線,而median無論如何只能給出一個值。

對我來說,預先計算不同的中位數似乎很容易,然后使用geom_vline將它們添加到繪圖中。 使用dplyr這樣做很方便。

library(dplyr)
Data2 <- Data %>% 
  group_by(Cell, Treatment) %>% 
  summarize(v = median(Response))

制作情節:

library(ggplot2)
baseplot <- ggplot(data = Data, aes(x = Response, fill = Treatment))
baseplot + geom_bar(width = 4) + coord_polar() + facet_grid(Treatment~Cell) +
  labs(y = "Frequency", x = "") + 
  geom_vline(data = Data2, aes(xintercept = v), size = 1.5)

結果:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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