2014-11-04 131 views
0

我想制作一个简单的日期*温度热图(?栅格图?),它显示了基于装仓温度组的温度随时间的变化。就像this一样,但是只能沿着日期轴(没有时间变量),我更喜欢使用ggplot,但是一直运行时误入歧途。数据产生的图形朝着正确的方向发展,但我无法弄清楚如何摆脱y轴的。我想感谢所有帮助简单?热图?温度在R(ggplot2)

dat <- data.frame(temp = sample(20,100, replace=TRUE), date=seq(as.Date("2011-07-01"), by=1, len=100)) 

p <- ggplot(dat, aes(date, temp)) + geom_tile(aes(fill = temp)) + scale_fill_gradient(low = "blue", high = "red") 

谢谢!

回答

1

所以你不想在y轴上地图temp

那么,你可以使用一个固定的y的值并移除其余的y轴:

dat <- data.frame(temp = sample(20,100, replace=TRUE), 
        date=seq(as.Date("2011-07-01"), by=1, len=100)) 
require(ggplot2) 
ggplot(dat, aes(x = date, y = 1)) + 
    geom_tile(aes(fill = temp)) + 
    scale_fill_gradient(low = "blue", high = "red") + 
    labs(y = NULL) + 
    scale_y_continuous(breaks = NULL) 

enter image description here

+0

谢谢了!所以设置y = 1是个诀窍。现在感觉有点笨... – 2014-11-04 11:57:56

+0

如果你喜欢我的回答,你可以投票并将其标记为已接受。 – EDi 2014-11-04 20:26:57

-1

您也可以尝试做一些像下面与metvurst包的情节。

http://i.imgur.com/8Js1Uz7.png

dat <- data.frame(temp = sample(20,60, replace=TRUE), 
     date=seq(as.POSIXct("2011-01-01 00:00"), by=3600, len=8760)) 

dat$year <- as.numeric(format(dat$date,"%Y")) 

dat$month <- as.numeric(format(dat$date,"%m")) 

# Install and load metvurst library 
install_github('metvurst', 'tim-salabim') 
library(metvurst) 

plot.air.temp <- strip(x = dat$temp, 
       date = dat$date, 
       cond = dat$year, 
       arrange = "long", 
       colour = colorRampPalette(rev(brewer.pal(11, "Spectral"))), 
       main = "Daily Air Temperatures\n\nTemperature [°C]") 

plot.air.temp