【发布时间】:2016-04-08 05:05:58
【问题描述】:
我想更改直方图一部分的颜色,包括填充和轮廓,但遇到了一些困难。复制下面的代码作为示例:
require(ggplot2)
#make data
rand <- sample(1:500, 1200, replace=T)
dat <- data.frame(val=c(rand), name=c(rep("A",400),rep("B",400),rep("C",400)))
dat$cond <- ifelse(dat$val < 100 & dat$name=="B", "remove", dat$name)
# plot 3 histograms (A, B, C). Colour each histogram differently and colour data <100 in B differently
ggplot(data=dat, aes(x=val,colour=cond, fill=cond)) +
geom_histogram(alpha=0.4) +
facet_wrap(~name, ncol=1)
这里的问题是所有绿条上方的紫线,有什么办法可以去掉?
我还尝试了另一种改变颜色的方法。见下文:
ggplot(data=dat, aes(x=val,colour=name, fill=name)) +
geom_histogram(alpha=0.4, data=subset(dat, name %in% c("A","C"))) +
geom_histogram(alpha=0.4, data=subset(dat, val<100 & name=="B"), fill="grey", colour="grey") +
geom_histogram(alpha=0.4, data=subset(dat, val>=100 & name=="B")) +
facet_wrap(~name, ncol=1)
所以这修复了条形顶部的线条,但我现在在灰色条形下方有一条绿线。这是在灰色条之后添加到图中的绿色条的结果。我可以颠倒顺序,但这会在绿色条下方形成一个灰色条。有没有什么办法可以在灰色条下面有一条灰线,在绿色条下面有一条绿线?
对于这个问题的挑剔性质,我深表歉意,但我正在制作一张图片以供发布,所以我希望它看起来完美!
【问题讨论】:
-
画两次,一次不画线,一次不填,你自己管理那里的图层
标签: r ggplot2 colors histogram