我正在尝试使用 geom_raster 和 geom_line 在 R 中制作以下图像(我分别使用这些图像并在顶部对线条进行了照片购物)。
x 是时间(这里是天),y 是深度 (m),颜色是温度 (C)
背景颜色是每十米深度箱的平均温度,不随 x 变化。这条线是每两分钟记录一次的深度读数。
有没有办法在ggplot中做到这一点?
我的数据框结构和获取这些图的代码很简单:
Unique.days depthbins temperature Unique.point ActualDepth
119 5 29.34 1 61.9
119 15 29.10 2 52.8
119 25 28.90 3 53.8
119 35 28.45 4 52.8
119 45 27.23 5 60.2
119 185 21.57 19 10
119 195 21.38 20 15.1
119 5 29.34 21 20.1
119 15 29.1 22 15.2
温度是每个深度箱的平均值,对于整个数据集,这些行每 20 行重复一次。ActualDepth 是整个数据集中不同的轨迹。
(1) 对于光栅
代码:
ggplot(data = test1, aes(x = Unique.days, y = depthbins)) +
geom_raster(aes(fill = temperature), interpolate = TRUE) +
scale_y_reverse()
(2) 对于 geom_line
代码:
ggplot(data = test1, aes(x = Unique.point, y = ActualDepth)) +
geom_line(data = test1, aes(x = Unique.point, y = ActualDepth)) +
scale_y_reverse() +
theme_bw()
当我尝试将它们放在一起时,我无法正确调整比例。例如
ggplot(data = test1, aes(x = Unique.days, y = DepthBins)) +
geom_raster(aes(fill = temperature), interpolate = TRUE) +
scale_y_reverse() +
geom_line(data = test1,
aes(x = Unique.days, y = ActualDepth),
col = 'white')
结果是:
颜色现在并不重要,但我希望深度的变化是显而易见的。
任何帮助将不胜感激!