Time series plot exampleSnippet of my data
时间序列数据为2015-2021年。我需要像我所展示的那样绘制线图。不幸的是,我正在得到一些奇怪的情节。我应该使用什么代码?
这是我在R enter image description here中使用的代码
Time series plot exampleSnippet of my data
时间序列数据为2015-2021年。我需要像我所展示的那样绘制线图。不幸的是,我正在得到一些奇怪的情节。我应该使用什么代码?
这是我在R enter image description here中使用的代码
2条答案
按热度按时间2q5ifsrm1#
brccelvz2#
你想策划的事情不是很清楚。我猜你想做的是
也许吧
编辑二:
我想我更了解你想做什么。我认为问题在于每年都有多个值。例如,在虚拟数据中,2015年有6个预期寿命值。因此,当你绘制2015年的数据时,
geom_line
必须经过2015年的每个值(71.2,70.8,66.9,62,57.1和52.3),在最小值(52.3)和最大值(71.2)之间形成一条垂直直线。所以,如果你想要一个唯一的行,你必须以某种方式总结你的变量。例如,您可以使用
dplyr::summarize
和group_by
计算某个日期的平均值或中位数。(我还在你的dput中添加了2行,以在2016年具有值,并修改了性别列以具有更多的多样性)
要查看离差,您可以将标准差添加到图中
您还可以绘制线性回归周围的点(这里您不必进行总结)
或者使用平均值(这里我们看不到差异,但如果你尝试不同的年份,你会看到这条线不是线性的,但缺点是一年的结果与其他年份完全不同):
与中位数
或者你可以为每个性别绘制一个图表,例如:
(you只有当Age变量是数字时,才可以对它执行相同的操作,这意味着3表示3岁,而不是年龄类别数3。如果是指年龄类别编号3,则视为分类)。
对于分类变量,你不能画一个折线图。在这里,您遇到了与以前相同的问题:ggplot认为性别0和1是数字,所以每年在0和1之间画一条线。
然后,你可以计算一下你每年有多少次性别为1的人,例如:
或者将Year变量视为分类变量(比将其视为时间序列更有用,因为您不知道2016年的确切时间:是2016/01/01吗?2016/05/24?):
或者如果你真的想要一条线,你可以做例如男性/女性每年的数量