【问题标题】:How can I add another layer / new series to a ggplot?如何向 ggplot 添加另一层/新系列?
【发布时间】:2010-02-24 21:50:24
【问题描述】:

在 ggplot 中,我可以将系列添加到绘图中:

ggplot(diamonds, aes(x = carat, y = price)) + geom_point()

我如何简单地添加另一个系列,例如绘制红宝石与钻石的成本。假设红宝石也在钻石数据集中。我试图用红宝石数据覆盖另一层,但它只绘制红宝石而不是钻石/克拉。

ggplot(diamonds, aes(x = carat, y = price)) + geom_point() + aes(x = rubies, y = price)

我可以看到这可以通过首先将所有数据融合在一起,准备绘制它,所以也许我应该走这条路。但是,像这样在情节中添加另一个系列似乎应该不会太难,但我不知道该怎么做。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:
    rubies  <- data.frame(carat = c(3, 4, 5), price= c(5000, 5000, 5000))
    
    ggplot(diamonds, aes(carat, price)) + 
      geom_point() + 
      geom_point(data = rubies, colour = "red")
    

    【讨论】:

    • 如果您想添加第二系列点与这些新点相关的第二行怎么办?例如,如果您已经拥有ggplot(dat,aes(X,Y)) + geom_point() + geom_line(),并且您想同时添加第二个geom_point 和第二个geom_line
    • 我是否必须为两个 geom 对象重复第二个数据集和变量列表,还是有更好的方法?
    • 为什么在你这样编码时会抛出美学长度错误:ggplot(diamonds, aes(diamonds$carat, diamonds$price)) + geom_point() + geom_point(data = rubies, color = “红色”)
    • 要添加第二个 geom_line 看到这个答案:stackoverflow.com/a/5323178/2682264
    • @Mark 仅仅是因为diamonds 包含的行多于rubies 回答者在第一行显示了rubies 的构造方式,您可以看到它只包含三行。此外,您不应该在美学映射中使用table$row 语法。
    猜你喜欢
    • 2013-01-26
    • 2015-07-22
    • 2019-11-21
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多