R 中的温度曲线
Temperature curve in R
我想在一个图中创建两条温度曲线。
我的数据框如下所示:
temp <- read.table(text = " Time Temp1 Temp2
1 00:00 18.62800 18.54458
2 00:10 18.60025 18.48283
3 00:20 18.57250 18.36767
4 00:30 18.54667 18.36950
5 00:40 18.51483 18.36550
6 00:50 18.48325 18.34783
7 01:00 18.45733 18.22625
8 01:10 18.43767 18.19067
9 01:20 18.41583 18.22042
10 01:30 18.39608 18.21225
11 01:40 18.37625 18.18658
12 01:50 18.35633 18.05942
13 02:00 18.33258 18.04142", header = T)
如何通过仅在 x 轴上显示每小时(24 小时)来获得干净的曲线(像折线图一样,线条上没有边缘)?
我正在考虑 ggplot2 的一些东西,但我仍在学习 R 基础知识。
我们可以为此使用 tidyverse
。首先,我们 "clean" 通过仅获取 00
分钟的时间值来获取所有不必要行的数据,然后我们使用 ggplot
可视化温度。
library(tidyverse)
cleanTemp <- temp %>% filter(grepl(pattern = ":00", Time))
ggplot(cleanTemp, aes(x = Time, y = Temp1, group = 1)) +
geom_line()
Temp2
可以用
添加到绘图中
geom_line(aes(y = Temp2), color = "red")
您还可以使用 lubridate
对时间列进行子集化:
temp$Time <- hm(temp$Time)
cleanTemp <- temp[minute(temp$Time) == 0,]
如果您想绘制所有值但只有完整的小时数作为 x 轴标签,您可以使用 ggplot
包绘制数据并使用 scale_x_discrete()
选项指定 breaks
.
library(ggplot2)
is_full_time <- grepl(':00', temp$Time)
ggplot(temp, aes(x = Time, y = Temp1, group = 1)) + geom_line() + scale_x_discrete(breaks = temp$Time[is_full_time])
我想在一个图中创建两条温度曲线。 我的数据框如下所示:
temp <- read.table(text = " Time Temp1 Temp2
1 00:00 18.62800 18.54458
2 00:10 18.60025 18.48283
3 00:20 18.57250 18.36767
4 00:30 18.54667 18.36950
5 00:40 18.51483 18.36550
6 00:50 18.48325 18.34783
7 01:00 18.45733 18.22625
8 01:10 18.43767 18.19067
9 01:20 18.41583 18.22042
10 01:30 18.39608 18.21225
11 01:40 18.37625 18.18658
12 01:50 18.35633 18.05942
13 02:00 18.33258 18.04142", header = T)
如何通过仅在 x 轴上显示每小时(24 小时)来获得干净的曲线(像折线图一样,线条上没有边缘)? 我正在考虑 ggplot2 的一些东西,但我仍在学习 R 基础知识。
我们可以为此使用 tidyverse
。首先,我们 "clean" 通过仅获取 00
分钟的时间值来获取所有不必要行的数据,然后我们使用 ggplot
可视化温度。
library(tidyverse)
cleanTemp <- temp %>% filter(grepl(pattern = ":00", Time))
ggplot(cleanTemp, aes(x = Time, y = Temp1, group = 1)) +
geom_line()
Temp2
可以用
geom_line(aes(y = Temp2), color = "red")
您还可以使用 lubridate
对时间列进行子集化:
temp$Time <- hm(temp$Time)
cleanTemp <- temp[minute(temp$Time) == 0,]
如果您想绘制所有值但只有完整的小时数作为 x 轴标签,您可以使用 ggplot
包绘制数据并使用 scale_x_discrete()
选项指定 breaks
.
library(ggplot2)
is_full_time <- grepl(':00', temp$Time)
ggplot(temp, aes(x = Time, y = Temp1, group = 1)) + geom_line() + scale_x_discrete(breaks = temp$Time[is_full_time])