Rでミリ秒データをPOSIX時間に変更してtsオブジェクトに格納する

今回対象とするデータは以下のようなもの

> head(df)
  Time Temperature Humidity CO2 Soil.Moisture
1   22        20.7       79 380            80
2   44        20.7       80 380            87
3   66        20.7       80 396            88
4   88        20.6       79 399            87
5  110        20.6       79 399            87
6  132        20.6       79 399            87

ミリ秒のPOSIXtimeへの変換はここを参考に。
stackoverflow.com

format(as.POSIXct(origin = "2022-01-18",df[[1]]/1000),"%H:%M:%OS3")

上記はformat()しているが、POSIXct型データ自体は以下で変換できる。

as.POSIXct(origin = "2022-01-18",df[[1]]/1000)

非周期的な計測時間をもつデータフレームをtsオブジェクトに変換するのはここを参考に。xtsライブラリを使う。
stackoverflow.com
補足すると、DF[-1]は最初の列(計測時間=ミリ秒)をドロップしている。
DF1はその削除した列(計測時間)のこと。
すなわちxts()の引数はxts("ミリ秒以外のデータ列本体", "時間ラベル")

library(xts)
x <- xts(DF[-1], DF[[1]])

以上をまとめると、

ms_posix <- as.POSIXct(origin = "2022-01-18",df[[1]]/1000)
x <- xts(df[-1],ms_posix)
plot(x)

f:id:seinzumtode:20220118194403p:plain
凡例を出したいのでやり方を調べる。
以下に書いてあった。
www.rdocumentation.org

plot(x, legend.loc="center")

なんと美しいグラフ
f:id:seinzumtode:20220118195124p:plain