R - geom_line()将点转换为垂直线

时间:2017-12-12 13:58:54

标签: r ggplot2

我正在融化数据框,以便在ggplot2中绘制它。然而, geom_line()没有给我水平线。相反,它正在将我的点转换为垂直线。我将附加图像并添加代码以进一步说明:

仅使用geom_point()

vecmmelt = melt(tail(tempdf,7), id.vars = "Date")

ggplot(vecmmelt, aes(x = Date, y = value, colour = variable, group=1)) +geom_point()+theme_bw()

Using geom point only

现在,在使用geom_line()时,我希望能有以下内容:

Expectation from + geom_line

使用以下代码我真正得到的是以下图片:

vecmmelt = melt(tail(tempdf,7), id.vars = "Date")

ggplot(vecmmelt, aes(x = Date, y = value, colour = variable, group=1)) +geom_point()+geom_line()

Reality that is wrong

我尝试使用geom_path(),这也是错误的

1 个答案:

答案 0 :(得分:0)

问题似乎在于您正在指定group=1,它告诉ggplot连接所有点。正如Mario Barbé对类似问题的解释:

  

对于折线图,必须将数据点分组,以便知道要连接的点。在这种情况下,这很简单-应该连接所有点,所以组= 1。当使用更多变量并绘制多条线时,线的分组通常由变量完成。

参考:Cookbook for R, Chapter: Graphs Bar_and_line_graphs_(ggplot2), Line graphs.

因此,在您的情况下,您应指定group=variable来解决此问题。