Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在ggplot中按年份添加点和线?_R_Ggplot2 - Fatal编程技术网

R 如何在ggplot中按年份添加点和线?

R 如何在ggplot中按年份添加点和线?,r,ggplot2,R,Ggplot2,若要获取每年总和的点数,但改用geom=“line”(或甚至同时使用两者)将返回错误: geom_路径:每组只包含一个观察。您是否需要调整团队美学? 我如何用两个点(代表和)和一条连接它们的线来绘制这个图?多谢各位 编辑1:在aes()中添加group=1,调用ggplot修复了该问题@Ronak Shah提出了两种可能的解决方案,它们适用于这个示例数据框架,但不适用于我的项目。我们将进一步调查 编辑2:原来我使用的“年份”存储为chr;有一次我把它改成了num一切都按预期进行了。为什么不先总结

若要获取每年总和的点数,但改用
geom=“line”
(或甚至同时使用两者)将返回错误:
geom_路径:每组只包含一个观察。您是否需要调整团队美学?

我如何用两个点(代表和)和一条连接它们的线来绘制这个图?多谢各位

编辑1:在
aes()中添加
group=1
调用
ggplot
修复了该问题@Ronak Shah提出了两种可能的解决方案,它们适用于这个示例数据框架,但不适用于我的项目。我们将进一步调查


编辑2:原来我使用的“年份”存储为
chr
;有一次我把它改成了
num
一切都按预期进行了。

为什么不先总结然后绘图呢

df %>%
ggplot(aes(x=Year, y=GDP))+
  stat_summary(fun.y = sum, geom="point")+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

在检查相关问题(愚蠢的我)后,在
aes()调用中添加
group=1
,解决了该问题

library(tidyverse)

df %>%
  group_by(Year) %>%
  summarise(GDP = sum(GDP)) %>%
  ggplot() + 
  aes(Year, GDP) + 
  geom_point() + geom_line() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

您是否尝试过
geom_point()
+
geom_line()
?它也可以在没有
group=1的情况下工作。调用
stat\u summary
两次修复了这个问题。@Ronak Shah您的两个解决方案都适用于我提供的示例数据帧,但当我在探索的原始数据集上使用它时,它给出了相同的错误(如果我使用
group=1
则没有错误)。不知道为什么会有不同,但是谢谢你的帮助@RonakShah发现我的数据中的“年”被存储为
chr
;有一次我把它改成了
num
你的建议效果很好!非常感谢你的帮助!
library(tidyverse)

df %>%
  group_by(Year) %>%
  summarise(GDP = sum(GDP)) %>%
  ggplot() + 
  aes(Year, GDP) + 
  geom_point() + geom_line() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))
df %>%
ggplot(aes(x=Year, y=GDP, group = 1))+
  stat_summary(fun.y = sum, geom="point")+
  stat_summary(fun.y = sum, geom="line")+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))