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

4
我正在将数据框融合以在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()

仅使用geom point

现在我期望使用 geom_line() 时会得到以下结果:

期望结果 + 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()

错误的现实

我尝试使用 geom_path(),但它也是错误的。


1
你能给我们提供一个 dput 吗,这样我们就可以看到你的数据了吗?Reprex - cparmstrong
2
尝试将组美学更改为 group = variable - David Klotz
你说得没错,但请看我的回答,因为我现在有另一个问题 :) 关于你的回答。 - J.Doe
2个回答

3
看起来问题在于您指定了group=1,这告诉ggplot要连接所有点。如Mario Barbé为类似的问题所解释的:

对于折线图,数据点必须分组以便知道要连接哪些点。在这种情况下,很简单-所有点都应该连接,因此group=1。当使用更多变量并绘制多条线时,通常通过变量对线进行分组。

参考:R Cookbook, 第: 图表 Bar_and_line_graphs_(ggplot2), 折线图. 因此,在您的情况下,您应该指定group=variable以解决问题。

0

这不是因为你的变量分组而是因为你的日期格式不正确。它将其理解为M-d-Y而不是d-M-Y,所以每个月有很多值但之间没有日期。尝试重新格式化你的日期:df$Date <-as.Date(paste(df$Year, df$Month, 01), "%Y %m %d")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接