Я создал ниже тепловую карту
для которого я использовал этот код:
library(ggplot2)
library(reshape2)
winners_min_expd0 <- matrix(c(NA, 2, 2, 3, NA, 3, 2, 2, NA), nrow=3, ncol=3, byrow = T)
colnames(winners_min_expd0) <- c("homophily","heterophily","preferential")
rownames(winners_min_expd0) <- c("homophily","heterophily","preferential")
melted_min_expd0 <- melt(winners_min_expd0)
colnames(melted_min_expd0) <- c("winning", "looses", "times")
p_min_expd0 <- ggplot(melted_min_expd0, aes(looses, winning)) +
geom_tile(aes(fill = times), colour = "white") +
scale_fill_gradient(low = "white", high = "red") +
ggtitle("Min function, exp decay off") +
scale_y_discrete(limits=c("preferential", "heterophily", "homophily")) +
xlab("(x) looses against (y)") + ylab("(y) winning over (x)")
p_min_expd0
Я хотел бы:
- перемасштабировать полосу «раз» в диапазон
<0:5>
, я понимаю, что нет значений{0,1,4,5}
, но я хотел бы иметь этот диапазон - сделайте шкалу тепла «times» дискретной, что означает один сплошной цвет для одного числа, например.
5 = hot red
,4 = red
и т. д. (возможный дубликат: тепловая карта ggplot2 с цветами для ранжированных значений), такие диапазоны, как<0,1)
, приемлемы, но я предпочитаю одиночные натуральные числа на шкале (вместо диапазонов значений) - добавьте тонкую сетку на тепловую карту, чтобы все плитки (включая белые) разделялись ею
- изменить серый цвет значений NA на более светло-серый
Помощь приветствуется, а также более короткий код.
Спасибо!