r - 更改 ggplot2 中单个方面的文本颜色

标签 r graph ggplot2 textcolor

我用这些命令创建了下面的图:

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 文档中没有读到任何相关内容。

plot

编辑:我很抱歉造成困惑。我的目标是更改上面 strip 之一的文本和背景颜色,而不是刻面的颜色。

最佳答案

您要更改 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))

这会产生一个像这样的情节:
screenshot

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

关于r - 更改 ggplot2 中单个方面的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16192368/

相关文章:

r - R 中的发生率置信区间

r - 当变量名称包含字符串信息时使用模式融化 - 避免强制转换为数字

r - 使用非唯一列连接两个数据框

在有向图中循环

graph - 找到 'minimal spanning path' 的算法?

c++ - 从 8 个连接的像素列表中提取片段

r - 使用分类数据创建线图而不连接线

r - ggplot2 在使用自定义 x 轴限制绘制直方图时丢失数据

html - Shiny 的传单标记弹出窗口中的图像

r - 通过 ggplot2 中的值对的平均颜色线