jay*_*esw 2 plot r time-series ggplot2
我创建了一个大型数据框(BEAVOutletWL_merge),我试图生成从各个列提取数据的图。当我输入以下代码时:
BEAVbaro <- ggplot(BEAVOutletWL_merge, aes(x=DateTime,y=BaroPres_kpa)) +
geom_point(size = .01)+
labs(x=NULL, y="BaroPres_kpa") + ylim(98, 103)+
theme()+ggtitle("Beaver Marsh")
BEAVbaro
Run Code Online (Sandbox Code Playgroud)
这是生成的图:
但是,当我尝试使用以下代码将其绘制为线图时:
BEAVbaro <- ggplot(BEAVOutletWL_merge, aes(x=DateTime,y=BaroPres_kpa)) +
geom_line(size = .5)+
labs(x=NULL, y="BaroPres_kpa") + ylim(98, 103)+
theme()+ggtitle("Beaver Marsh")
BEAVbaro
Run Code Online (Sandbox Code Playgroud)
该图的生成:
我唯一改变的是“geom_point”到“geom_line”和大小(出于美观目的),但有谁知道为什么 01/22 和 07/22 之间的大块数据突然在线图上消失?
谢谢!
因为ggplot在有值的行中留下空白NA,所以值两侧的点NA不会显示为geom_line。例子:
library(ggplot2)
library(cowplot)
dd <- data.frame(x = 1:10,
y = c(1, NA, 3, NA, 5, NA, 7, NA, 9, 10))
gg0 <- ggplot(dd, aes(x,y))
plot_grid(gg0 + geom_point(), gg0 + geom_line())
Run Code Online (Sandbox Code Playgroud)
如果您可以使用线性插值,则可以使用以下方法解决此问题na.omit():
gg0 %+% na.omit(dd) + geom_line()
Run Code Online (Sandbox Code Playgroud)
这会很有趣,但比我现在有时间在每个NA侧翼数据点的位置绘制占位符(例如短水平破折号)更具挑战性..)
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |