3

我正在尝试使用 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')

结果是:

geom_line 不按比例

颜色现在并不重要,但我希望深度的变化是显而易见的。

任何帮助将不胜感激!

4

0 回答 0