我使用qplot绘制了一个facet图,我使用“fill”选项根据它们的值为条形颜色(高=红色,med =紫色,低=蓝色)
http://i.stack.imgur.com/raEzA.png
我的代码是:
x = qplot(as.character(exon),Divergence_from_Average, data=HRA_LR,
geom="histogram",fill=abs(Divergence_from_Average))
y = x +facet_grid(~probeset_id, scales="free_x", space= "free") + theme_bw() +
opts(title="GRP78/HSPA5 (HRN vs LR)")
如果我只需要将高于0.3的条纹着色并留下未填充的剩余部分,我该怎么做?
答案 0 :(得分:8)
您可以调整它以满足您的需求,但这是基本概念:
我们将定义一个新的二进制变量,用于确定是否填充条形。我们将其作为一个因素传递给fill
参数,并使用scale_colour_manual
为它们提供我们想要的颜色。我也通过将colour
参数设置为红色,以便您可以在白色背景上看到白条。
#Sample data
df <- data.frame(
divergence = rnorm(10),
exons = paste("E", sample(1:20, 10, TRUE), sep = ""),
probset_id = sample(letters, 10, FALSE)
)
#Binary flag for fill
df$fill <- with(df, ifelse(divergence > .3, 1,0))
ggplot(data = df, aes(as.character(exons), divergence, fill = factor(fill))) +
geom_histogram(colour = "red", legend = FALSE) +
scale_fill_manual(values = c("1" = "red", "0" = "white"), legend = FALSE) +
facet_grid(~ probset_id, scales="free_x", space= "free") +
theme_bw() + opts(title="GRP78/HSPA5 (HRN vs LR)")
会生成这样的东西。在保存图片之前我忘记了set.seed()
,因此您的里程可能会有所不同,但请将此视为概念验证:
答案 1 :(得分:1)
以下是ggplot2
中提示数据的示例library(ggplot2)
data(tips)
qplot(day, data = tips, geom = 'blank') + geom_bar(aes(fill = ..count.. > 65))