如何解决绘制 Tibble 的行
我是 R 的新手,所以请原谅我。我有一个名为 ycd 的小标题,其中包含我想根据时间绘制的列。我在 tibble 中有一个列有相应的日期。由于数据不可用,某些列在某个日期之前具有 NA。我不想用零填充它,我只希望列的行在数据存在时开始,而在数据不存在时保持为空。这是我的电话 str(ycd):
example.com
我尝试执行以下操作,但没有奏效。
systemd
有什么建议吗?我正在考虑将其转换为 data.frame,但我发现这是一个简单的方法。我真的很想学tibble!
数据是找到的表 https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield 复制并粘贴到一个excel文档中并使用read_csv()读取
解决方法
使用末尾注释中可重复显示的 DF 运行以下操作。如果您想要单独的面板,请省略 facet=NULL。
library(zoo)
library(ggplot2)
z <- read.zoo(DF,format = "%m/%d/%Y")
autoplot(z,facet = NULL) + ggtitle("My Series")
注意
DF <- data.frame(Date = c("1/2/1990","1/3/1990","1/4/1990","1/5/1990"),a = c(NA,1:3),b = c(3:1,NA))
,
正如@Jon Spring 指出的,ggplot 在处理“长”数据时效果更好,因此我们应用 tidyr::pivot_longer
函数:
ycd = tidyr::pivot_longer(ycd,-1,values_to="InterestRates",names_to="Duration")
-1
使第一列(日期)不发生变化的位置。
如果我理解正确,您想为每个组画点,但整个数据只有一个geom_smooth
,对吗?如果是,则指定 geom_smooth
颜色为黑色会覆盖 color=Duration
,但如果您希望每个 Duration 有一个 geom_smooth
,则只需删除 color="black"
。
ggplot(ycd,aes(x=Date,y=InterestRates,color=Duration)) +
geom_point(size=10) +
geom_smooth(method="lm",se=FALSE,color="black")
您还可以使用不同的美感(放在 aes()
中的参数)来区分点,例如 shape=...
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。