首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cowplot和ggplot2在某些行周围绘制边框

使用cowplot和ggplot2在某些行周围绘制边框
EN

Stack Overflow用户
提问于 2018-09-05 09:09:40
回答 1查看 1.7K关注 0票数 8

我想以某种方式指出,多面板图形中的某些行应该一起比较。例如,我想制作这个图:

如下图所示(用PowerPoint制作的面板周围有方框):

这是我使用第一个图所做的代码。我使用了ggplot和cowplot:

代码语言:javascript
复制
require(cowplot)
theme_set(theme_cowplot(font_size=12)) # reduce default font size
plot.mpg <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl))) + 
  geom_point(size=2.5)
plot.diamonds <- ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar() +
  theme(axis.text.x = element_text(angle=70, vjust=0.5))
plot.mpg2 <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl))) + 
  geom_point(size=2.5)
plot.diamonds2 <- ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar() +
  theme(axis.text.x = element_text(angle=70, vjust=0.5))
plot_grid(plot.mpg, plot.diamonds,plot.mpg2, plot.diamonds2, nrow=2,labels = c('A', 'B','C','D'))

是否可以对此代码进行更改以获得我想要的边框?或者我甚至可以使面板A和B的颜色与面板C和D的背景颜色略有不同?这可能会更好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-05 13:20:45

由于plot_grid()的结果是一个ggplot对象,因此一种方法是使用嵌套的绘图网格:每行一个plot_grid(),并通过theme()添加适当的边框。

代码语言:javascript
复制
plot_grid(
  # row 1
  plot_grid(plot.mpg, plot.diamonds, nrow = 1, labels = c('A', 'B')) +
    theme(plot.background = element_rect(color = "black")),

  # row 2
  plot_grid(plot.mpg2, plot.diamonds2, nrow = 1, labels = c('C', 'D')) +
    theme(plot.background = element_rect(color = "black")), 

  nrow = 2)

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

https://stackoverflow.com/questions/52175766

复制
相关文章

相似问题

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