【问题标题】:R ggplot - adding all data points to all facetsR ggplot - 将所有数据点添加到所有方面
【发布时间】:2016-08-11 10:00:43
【问题描述】:

直到现在我找不到合适的答案,这是我关于 R 中 ggplot2 的简短问题:

data(mtcars)
ggplot(data=mtcars, aes(x=mpg, y=wt, fill=factor(cyl))) +
scale_fill_manual(values=c("red","orange","blue"))+
geom_point(size=2, pch=21)+
facet_grid(.~cyl)

这一切都很好,现在我想要每个方面的所有数据点(不管 cyl 有多少数字)(例如,点下方有一个平滑的灰色)?

谢谢,迈克尔

【问题讨论】:

标签: r ggplot2 facet facet-wrap


【解决方案1】:

使用@beetroot 提供的链接,我可以做这样的事情:

g1 <- ggplot(data=mtcars, aes(x=mpg, y=wt)) + 
  geom_point(data=mtcars[, c("mpg", "wt")], aes(x=mpg, y=wt), colour="grey") +
  geom_point(size=2, pch=21, aes(fill=factor(cyl))) + 
  scale_fill_manual(values=c("red","orange","blue")) + 
  facet_wrap(~cyl) 

这会产生情节:

希望对你有所帮助。

【讨论】:

  • 谢谢。我将详细说明建议的链接。也感谢您的建议,但在这里我得到:“错误:美学必须是长度 1 或与数据相同(60):x,y,填充”当我以这种方式将它应用于我的特定数据(但数据结构相同)。
  • @mod_che :我写的代码,这也给你错误吗?对我来说,它工作正常。
【解决方案2】:

这是一个使生活更轻松的轻微简化。您唯一需要做的就是从提供给后台geom_point() 层的数据中删除分面变量。

library(tidyverse)
ggplot(data=mtcars, aes(x=mpg, y=wt)) + 
  geom_point(data=select(mtcars,-cyl), colour="grey") +
  geom_point(size=2, pch=21, aes(fill=factor(cyl))) + 
  scale_fill_manual(values=c("red","orange","blue")) + 
  facet_wrap(~cyl) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多