【问题标题】:ggplot overlay plot error, no layers in plotggplot覆盖图错误,图中没有图层
【发布时间】:2013-08-16 07:57:30
【问题描述】:

我正在尝试使用 ggplot2 在同一个图形上叠加两个变量,因此我使用 melt 以正确格式获取数据,然后使用以下内容:

Locations <- c("USA","UK","Spain")
vals_1 <- c(44,6,76)
vals_2 <- c(0.2,0.9,4.1)

dat <- data.frame(Locs = Locations,
                  method_1 = vals_1,
                  method_2 = vals_2)
dat2 <- melt(dat,id = "Locs")

ggplot(data = dat2,
       aes(x = Locs, y = value, colour = variable))

但这会产生错误。为什么它说没有层?

这与 dat2[,1] 和 dat2[,2] 的类有关吗?如果是这样,它应该改成什么?我希望图表在 xaxis 上显示 dat2[,1] 中的字符串以及图中显示的两个变量。有人能指出我正确的方向吗?

修改:

添加后

geom_line()

得到

ggplot(data = dat2,
       aes(x = Locs, y = value, colour = variable)) +
  geom_line()

我收到以下错误 geom_path:每个组仅包含一个观察值。需要调整群体审美吗?

【问题讨论】:

  • 你没有在你的绘图中添加任何geom_,例如,+geom_bar()
  • 谢谢,请看修改后的帖子

标签: r ggplot2


【解决方案1】:

您必须告诉ggplot() 哪些点要通过线连接。这是通过在aes() 中添加group=variable 来完成的。

ggplot(data = dat2,
       aes(x = Locs, y = value, colour = variable,group=variable)) +
  geom_line()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 2019-12-31
    相关资源
    最近更新 更多