ggplot2 facet中的单个垂直线

时间:2016-11-22 16:01:49

标签: r ggplot2 facet

我有一个包含一些简单信息的数据框。样本代码(A,C,T或G)和每个样本的一些计数。我还有一个数据框,其中包含一些我希望绘制为每个代码的垂直线的方法。不幸的是,当我制作情节时,所有情节都显示在所有情节上。有没有办法在一个图上按顺序绘制一条垂直线?

非常感谢,下面是一个简单的例子

虚拟数据

sample <- c(1:100)
code <- c(rep("A", 25), rep("C", 25),rep("G", 25),rep("T", 25))
count <- sample(1:30, 100, replace=T)
df <- data.frame(sample, code, count)


vline.data <- data.frame(z = c(15, 20, 25, 30))

ggplot(df, aes(x=count))+
  geom_histogram(binwidth=.5)+
  facet_grid(. ~ code)+
  geom_vline(aes(xintercept = z), vline.data)+
  theme(axis.title.x=element_text(),
        axis.title.y=element_text(),
        legend.position="none")

1 个答案:

答案 0 :(得分:1)

也许这个?:

sample <- c(1:100)
code <- c(rep("A", 25), rep("C", 25),rep("G", 25),rep("T", 25))
count <- sample(1:30, 100, replace=T)
df <- data.frame(sample, code, count)

library(dplyr)

vline.data <- df %>%
              group_by(code) %>%
              summarize(z = mean(count))

ggplot(df, aes(x=count))+
  geom_histogram(binwidth=.5)+
  facet_grid(. ~ code)+
  geom_vline(aes(xintercept = z), vline.data, colour = "red")+
  theme(axis.title.x=element_text(),
        axis.title.y=element_text(),
        legend.position="none")

enter image description here