我使用以下命令创建了下面的图:
ggplot(long.data, aes(owner,value)) + stat_summary(fun.y=mean,geom="bar",
fill=c("deepskyblue","deepskyblue4")) +
stat_summary(fun.data=mean_cl_normal,geom="errorbar",position=
position_dodge(width=.90),width=.1) +
labs(x="",y="") + facet_grid(IV~experiment+type,scales="free_y") +
theme(strip.text.y = element_text(colour = 'red4'))
如果我想仅为上面的x面(在这种情况下为“隐式”和“显式”级别)更改文本颜色(可能还有背景颜色),我该怎么做?可能吗?我在ggplot2文档中没有读到任何内容。
安德烈
编辑:对不起,我很抱歉。我的目标是更改其中一个上部条带的文本和背景颜色,而不是刻面的颜色。
答案 0 :(得分:6)
您想要更改strip
元素的属性,而不是facet。尝试类似下面的代码。请注意,这是一个基于伪随机数据的最小示例,因为您没有提供自己的数据供我们使用。您必须根据需要调整代码。
require(reshape)
require(ggplot2)
require(scales)
# fake data
mydf <- data.frame(val1 = runif(10, 0, 1), val2 = runif(10, 0, 1))
mydf
# reshape to long format
long.data <- melt(mydf)
long.data$facetvar <- "implicit"
long.data$facetvar[seq(1, 19, 2)] <- "explicit"
long.data
# plot
ggplot(long.data, aes(y = value, x = variable)) +
geom_bar(position = 'dodge', stat = "identity") +
facet_wrap (~ facetvar) +
theme(strip.background = element_rect(fill = alpha('green', 0.3))) +
theme(strip.text.x = element_text(colour = 'blue', size = 10))
这会产生如下情节:
请注意,您已经等了很长时间(根据Stack Overflow上的R社区的标准)获得答案,因为您的问题不明确,并且因为您没有提供我们可以复制的完全可重现的代码和数据并粘贴到我们自己的R安装中。如果你这样做了,那么比我自己知识渊博的人会在一小时内回答这个问题。有关如何提出下一个问题的提示,请参阅this非常有用的帖子。
答案 1 :(得分:2)
我得到了warning
......但这似乎是一个更优雅解决方案的良好起点:
ggplot(mtcars) + geom_rect(data = subset(mtcars, cyl == 4), aes(fill = cyl),xmin = -inf,xmax = Inf, ymin = -Inf,ymax = Inf, alpha = 0.05) +
geom_point(aes(mpg, wt)) + facet_grid(. ~ cyl)