R ggplot2带日期x轴的热图-删除灰色区域

R ggplot2带日期x轴的热图-删除灰色区域,r,ggplot2,heatmap,R,Ggplot2,Heatmap,我试图显示西欧一个tyoical家庭的电能消耗热图,在X轴上是一年中的所有天,在Y轴上是每天的小时数,热图显示每天每小时使用的电能(kWh)。以下是我目前得到的信息: 我的问题是调整日期X轴的比例,使绘图左侧和右侧的灰色色带消失。 由于知道如何展开(),即将数字数据的数据显示限制为最小值、最大值,因此很难找到x轴数据的解决方案 以下是我用来传达上述情节的内容: hm.palette <- colorRampPalette(rev(brewer.pal(11, 'Spectral')), s

我试图显示西欧一个tyoical家庭的电能消耗热图,在X轴上是一年中的所有天,在Y轴上是每天的小时数,热图显示每天每小时使用的电能(kWh)。以下是我目前得到的信息: 我的问题是调整日期X轴的比例,使绘图左侧和右侧的灰色色带消失。 由于知道如何展开(),即将数字数据的数据显示限制为最小值、最大值,因此很难找到x轴数据的解决方案

以下是我用来传达上述情节的内容:

hm.palette <- colorRampPalette(rev(brewer.pal(11, 'Spectral')), space='Lab')
heatmap_print <- ggplot(MyData, aes(y=Time, x=Day, fill=Totaal)) + 
geom_tile(aes(height=1)) +
scale_fill_gradientn(colours = hm.palette(100)) 
print(heatmap_print + 
    scale_y_continuous(name = "Hour of day", breaks = seq(0, 23, by=1), expand = c(0, 0)) + 
    scale_x_date(name = "Month of year", 
                 breaks = seq(as.Date("2009-01-15"), 
                              as.Date("2009-12-15"), 
                              by = "1 month"), date_labels ="%B"))

hm.palete如果你只是想摆脱灰色,可以尝试使用
themes()

hm.palette <- colorRampPalette(rev(brewer.pal(11, 'Spectral')), space='Lab')
heatmap_print <- ggplot(MyData, aes(y=Time, x=Day, fill=Totaal)) + 
geom_tile(aes(height=1)) +
scale_fill_gradientn(colours = hm.palette(100)) 
print(heatmap_print + 
    scale_y_continuous(name = "Hour of day", breaks = seq(0, 23, by=1), expand = c(0, 0)) + 
    scale_x_date(name = "Month of year", 
                 breaks = seq(as.Date("2009-01-15"), 
                              as.Date("2009-12-15"), 
                              by = "1 month"), date_labels ="%B")) +
    theme(panel.background = element_blank(),
          plot.background = element_blank())

hm.palete只需更改主题,例如:
+theme\u classic()
您是否尝试过
scale\u x\u date
中的
expand=c(0,0)
?它适用于我的简单绘图:
ggplot(data.frame(x=Sys.Date()+0:3,y=1:4),aes(x,y))+geom_point()+scale_x_Date(expand=c(0,0))
Hi,非常感谢!非常高效和优雅的解决方案。今早找到此参考,也可以使用(但需要考虑缩放和日期格式):