R ggplot2 тепловая карта с осью X даты - удалить серые области
Я пытаюсь отобразить тепловую карту для потребления электроэнергии домохозяйством в Западной Европе, на оси X все дни года, на оси Y- часы в день, на карте тепла показано количество электроэнергии, использованной в кВтч. в час в день. Вот что я получил до сих пор: Тепловая карта Потребление энергии Моя проблема состоит в том, чтобы масштабировать ось 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"))
Благодарен за любые идеи.
1 ответ
Если вы просто хотите избавиться от серого, попробуйте что-нибудь с 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())
В противном случае вам нужно будет использовать coord_cartesian(xlim = c(X, X), ylim = c(X, X))
или просто xlim(X, X) + ylim(X, X)