更改ggplot2中单面的文本颜色

问题描述 投票:5回答:2

我已经使用以下命令创建了下面的图:

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文档中阅读有关该内容的内容。

“

编辑:对不起,我很困惑。我的目的是更改上部条纹之一的文本和背景颜色,而不是构面的颜色。

r graph ggplot2 textcolor
2个回答
6
投票

您想更改strip元素的属性,而不是构面。尝试类似下面的代码。请注意,这是一个基于随机构成的虚假数据的最小示例,因为您没有提供自己的数据供我们使用。您必须根据需要调整代码。

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))

这会产生如下图:“截屏”

[请注意,您已经等了很长时间了(根据Rover社区在Stack Overflow上的标准),因为您的问题不清楚,并且因为您没有提供可复制且完全可复制的代码和数据,粘贴到我们自己的R安装中。如果您这样做了,那么比我自己知识渊博的人会在一小时内回答这个问题。请参阅this非常有用的帖子,以获取有关如何询问下一个问题的提示。


3
投票

我得到一个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)

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9YWWRkVS5qcGcifQ==” alt =“在此处输入图像描述”>

© www.soinside.com 2019 - 2024. All rights reserved.