首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义ggtitle的背景色

自定义ggtitle的背景色
EN

Stack Overflow用户
提问于 2017-02-21 01:38:03
回答 1查看 5K关注 0票数 6

我希望能够将我的ggplot的ggtitle的背景更改为forestgreen,同时保持文本为白色。颜色不应该应用于整个图形,而应该只应用于标题。这就是我到目前为止所知道的:

代码语言:javascript
复制
p <- ggplot(...)
p <- p + ggtitle("Market Updates") + labs(x = "Date", y = "High")
p <- p + theme(plot.title = element.text(hjust = 0.5, size = 20, 
               color = "#FFFFFF"))

我想让它看起来像这样:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 20:35:04

从评论更新。

有几种方法可以做到这一点;使用facet_,如Axeman所建议的,在绘图上方创建一个条带(更改条带的格式比更改标题条更容易),或者您可以手动创建标题条,然后将其粘合到绘图上。

示例

代码语言:javascript
复制
library(ggplot2)
library(gridExtra)
library(grid)

# Create dummy variable to facet on: this name will appear in the strip
mtcars$tempvar <- "Market Updates"

# Basic plot
# Manually added legend to match your expected result
p <- ggplot(mtcars, aes(mpg, wt)) + 
        geom_line(aes(colour="Com")) +
        scale_colour_manual(name="", values=c(Com = "#228b22") ) +
        labs(x = "Date", y = "High")

使用facet_:尽管标题居中,但此选项仅在整个打印面板中添加颜色条。

代码语言:javascript
复制
p + facet_grid(. ~ tempvar) +
        theme(strip.background = element_rect(fill="#228b22"),
              strip.text = element_text(size=15, colour="white"))

它会产生

使用grid函数:这将在整个绘图面板上添加颜色条,但标题在图形窗口中居中。(您可以通过将定位添加到plot gtable来获得更多的控制)

代码语言:javascript
复制
my_g <- grobTree(rectGrob(gp=gpar(fill="#228b22")),
                 textGrob("Market Updates", x=0.5, hjust=0.5,
                                            gp=gpar(col="white", cex=1.5)))

grid.arrange(my_g, p, heights=c(1,9))

它会产生

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42351011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档