У меня есть этот фрейм данных:
var1 var2 value 1 A X 0 2 B X 1 3 C X 1 4 A Y 1 5 B Y 0 6 C Y 0
, и я хотел бы нарисовать var1 на оси X и var2 на оси Y, и отобразить значение как красный, если оно равно 1, и белый, если он равен нулю. В данном случае, вроде:
A B C X white red red Y red white white
До сих пор я пробовал с:
ggplot(dataframe, aes(var1, var2, fill = value)) + geom_raster() + coord_fixed(ratio = 1) + scale_fill_gradientn(colours = c("white", "red"))
, но сюжет неверен:
df <- tribble( ~var1, ~var2, ~value, "A", "X", 0, "B", "X", 5, "C", "X", 4, "A", "Y", 1, "B", "Y", 2, "C", "Y", 0.5, ) df %>% ggplot(aes(var1, var2, fill = value)) + geom_raster() + scale_fill_gradient(low = "white", high = "red")