绘制的图表中没有线,尽管使用了+ geom_line()。

8

我已经阅读了文档,认为我的代码应该是正确的,但输出结果中点之间没有连线。这是怎么回事?

x轴是离散的,y轴是连续的。

我的代码:

 point.sqrmPrice  <- ggplot(overview.df, aes(x = areaSize, y = sqrmPrice)) + 
      geom_line() +
      geom_point() + 
      scale_y_continuous(breaks = c(seq(min(overview.df$sqrmPrice), max(overview.df$sqrmPrice), by = 10000) )) + 
      theme_bw()

enter image description here


1
我认为很少有SO用户在他们的R环境中拥有overview.df。请提供一些数据,我们可以将其复制粘贴到我们的R安装中以复制您的问题并找出解决方案。 - shekeine
这个回答解决了你的问题吗?在ggplot2中绘制线条和组别审美 - tjebo
3个回答

26

这里的根本问题是与 这篇 stack 帖子重复了。

以下是一个可复制的示例,展示了 @SN248 提到的向代码中添加组的内容。

ggplot(iris, aes(x = factor(Sepal.Length), y = Sepal.Width)) + 
  geom_line(aes(group=1)) + geom_point() + theme_bw()

4
是的!group = 1。忘记了这个。谢谢! - ch-pub
哦,那是什么? - dmeu

15

您没有获得行,因为areaSize是一个因子。请使用数字进行转换:

overview.df$areaSize <- as.numeric(as.character(overview.df$areaSize))

然后制作绘图。


4
将来,报告与您的问题相关的函数发出的警告,例如在这种情况下,您很可能会收到“geom_path:每个组仅包含一个观察结果。您需要调整组美学吗?” 的警告,这非常有用。谢谢。 - shekeine

0
你需要考虑的是,你是否期望一条线连接所有的点?
否则,你期望多少条线,那将告诉你需要有多少组。
你缺少 `group` 美学要求在 `geom_line()` 中,因为你没有指定你想要在你的图中有多少个组(线)。

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