我有一个包含一些简单信息的数据框。每个样本都有一个样本代码(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")
vline.data <- data.frame(z = c(15, 20, 25, 30), code=c("A","C","G","T"))
。这是如何将每个值与特定的面板关联起来。除了创建新的数据框之外,您还可以使用dplyr
包在运行时执行此操作:library(dplyr)
,然后在 ggplot 代码中:geom_vline(aes(xintercept = z), df %>% group_by(code) %>% summarise(z=mean(count))) +
。 - eipi10