Esta pergunta é uma continuação desta ( Mensagem de aviso: 2 linhas contendo valores ausentes foram removidas (`geom_tile()`) ). Alguns dias são fins de semana e gostaria de comunicar isso no gráfico. No momento, codifiquei os valores de fim de semana com um número negativo e alterei a escala para que aparecessem em azul. Não tenho certeza se é isso que eu quero. O ideal seria que os fins de semana tivessem o mesmo valor positivo, mas talvez um texto com uma cor diferente (branco em vez de preto) e/ou uma borda ao redor do bloco. Tenho uma coluna booleana que me informa se são fins de semana. Talvez haja uma visualização melhor que possa identificar os dias de fim de semana?
hours <- c(16, 17, 0, 1, 2, 21, 22, 9, 19, 20)
days <- c(0, 0, 3, 3, 3, 6, 6, 11, 21, 21)
value <- c(3, 60, -18, -60, -23, 51, 48, 49, 47, 40)
weekend<- c(FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE)
df <- data.frame(hours, days, value, weekend)
h<-1
w<-1
ggplot(df, aes(days, hours)) +
geom_tile(aes(fill = value, width = w, height = h)) +
geom_text(aes(label = value), size = 3) +
scale_fill_continuous(limits=c(-60,60),breaks=seq(-60,60,20),low = "blue", high = "red") +
xlab("Day") +
ylab("Hour") +
scale_x_continuous(
breaks = seq(0, 41, by = 7),
expand = c(0.05, 0.05)
) +
scale_y_continuous(
breaks = seq(0, 23, by = 3),
expand = c(0.05, 0.05)
) +
coord_cartesian(xlim=c(0,41),ylim=c(0,23))
Responder:
hours <- c(16, 17, 0, 1, 2, 21, 22, 9, 19, 20)
days <- c(0, 0, 3, 3, 3, 6, 6, 11, 21, 21)
value <- c(3, 60, 18, 60, 23, 51, 48, 49, 47, 40)
weekend<- c("black","black","white","white","white","black","black","black","black","black")
df <- data.frame(hours, days, value, weekend)
h<-1
w<-1
ggplot(df, aes(days, hours)) +
geom_tile(aes(fill = value, width = w, height = h)) +
geom_text(aes(label = value), size = 4, colour=weekend) +
scale_fill_continuous(limits=c(0,60),breaks=seq(-0,60,10),low = "white", high = "red") +
xlab("Day") +
ylab("Hour") +
scale_x_continuous(
breaks = seq(0, 41, by = 7),
expand = c(0.05, 0.05)
) +
scale_y_continuous(
breaks = seq(0, 23, by = 3),
expand = c(0.05, 0.05)
) +
coord_cartesian(xlim=c(0,41),ylim=c(0,23))