如何为条形图中的特定条形图着色(qplot,ggplot2)

时间:2011-03-18 22:07:48

标签: r ggplot2

我使用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的条纹着色并留下未填充的剩余部分,我该怎么做?

2 个答案:

答案 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(),因此您的里程可能会有所不同,但请将此视为概念验证:

enter image description here

答案 1 :(得分:1)

以下是ggplot2

中提示数据的示例
library(ggplot2)
data(tips)
qplot(day, data = tips, geom = 'blank') +  geom_bar(aes(fill = ..count.. > 65))