如何在y轴上重新排序时间,使午夜处于中心位置

时间:2019-03-28 19:18:26

标签: r ggplot2

我正在使用geom_raster通过分钟(y轴)以分钟为单位绘制日期(x轴)以创建活动图。我希望y轴从中午12点开始,一直到午夜,然后回到中午(中午12点,11点,10点,9点,8点,7点,6点,5点,4点,3点,2点,1点,0点,11点,晚上10点,晚上9点,晚上8点,晚上7点,下午6点,下午5点,下午4点,下午3点,下午2点,下午1点(中午12点)),因此午夜将在中心。我完全不知道该怎么做。

我试图将数据变成一个因子并对其进行排序:

x <- seq(11.55, 0, -0.05)
y <- seq(23.55, 12.00, -0.05)
z <- c(x,y)

但是问题是我有很多重复的值,因为我正在处理24天的数据...

这是我的代码,没有重新排列y轴:

ggplot(LIA_20, aes(x = date, y = time))+
  geom_raster(data = LIA_20, aes(fill = Sv_mean))+
  scale_fill_gradientn(colours = matlab.like(100), na.value = "white",
                       limits = c(-140, -70))+
  scale_x_continuous(expand = c(0,0), limits = c(2, 23), breaks = 3:22)+
  scale_y_discrete(expand = c(0,0))+

  coord_fixed(ratio = 0.00005)+
  theme(panel.background = element_blank(), 
        legend.position = "bottom")+
  labs(x = "Day (May 2018)", y = "Time of day, UTC", fill = "Sv (dB)")+ 
  guides(fill = guide_colourbar(title.position = "bottom", 
                                title.hjust = 0.5))

0 个答案:

没有答案