在R

时间:2018-01-29 11:12:32

标签: r ggplot2 posixct

我有一个包含3个变量的data.frame,并希望以POSIXct格式绘制与第三个变量(VWC和Depth)相关的第三个变量(Date)。我还想将POSIXct时间戳添加到图例中。

我的data.frame的结构如下:

> str(paper_profile_data2)
'data.frame':   24 obs. of  3 variables:
 $ Date    : POSIXct, format: "2017-04-07 06:45:00" "2017-04-07 06:45:00" ...
 $ VWC     : num  0.267 0.248 0.299 0.263 0.262 0.314 0.242 0.244 0.308 0.166 ...
 $ Depth_cm: int  16 36 56 16 36 56 16 36 56 16 ...

我想获得一个像这样的人物: made by Excel

现在我设法在R中获得以下数字: in R

R代码如下:

paper_profile_data2 = read.csv(file= "paper_profile_data_2.csv" , header=TRUE,sep= ";")) 
paper_profile_data2$Date<- as.POSIXct(paper_profile_data2$Date,format="%d/%m/%Y %H:%M",tz="UTC")


ggplot(paper_profile_data2)+
    geom_point(aes(x=VWC,y=Depth_cm,color=Date))+
    geom_line(aes(x=VWC,y=Depth_cm,color=Date))+
    labs(x=expression (vwc ~(m^3/m^3)),y = expression ("Depth (m)"),title="") +
    scale_y_reverse(limits = c((60),(0)), breaks=c(60,56,36,16,0),expand = c(0, 0))

任何帮助都将受到高度赞赏。 提前谢谢。

劳尔

PD。感谢Roland评论(将日期作为因素)。我之前将Date变量转换为POSIXct,这导致了错误。我让变量Date作为因子,错误消失了。最后我将geom_line更改为geom_path,以便按原始顺序排序不同的点(我的数据按日期和深度排序)。

这里是最终的R代码:

paper_profile_data2 = read.csv(file= "paper_profile_data_2.csv" , header=TRUE,sep= ";"))

ggplot(paper_profile_data2)+
    geom_point(aes(x=VWC,y=Depth_cm,color=Date))+
    geom_path(aes(x=VWC,y=Depth_cm,color=Date))+
    labs(x=expression (vwc ~(m^3/m^3)),y = expression ("Depth (cm)"),title="") +
    scale_y_reverse(limits = c((60),(0)), breaks=c(60,56,36,16,0),expand = c(0, 0)) +
    labs(x=expression (vwc ~(m^3/m^3)),y = expression ("depth (cm)"),title="")

而且:final result

0 个答案:

没有答案