Цветные плитки (треугольники) категориального троичного/симплексного графика в соответствии с числовыми значениями
У меня есть набор данных с комбинациями трех категориальных переменных (каждая из 6 классов) и непрерывного значения (в диапазоне от 0 до 1), которое принадлежит этим комбинациям классов. В R эти данные выглядят так (пример данных):
grid <- expand.grid(letters[1:6], letters[1:6], letters[1:6])[, 3:1]
grid$vals <- runif(nrow(grid), 0, 1)
Теперь я собираюсь визуализировать эти данные. Мой план состоял в том, чтобы создать троичный (син. симплексный) график для трех категориальных переменных («Var3», «Var2» и «Var1») и раскрасить 216 треугольников, принадлежащих каждой комбинации категорий, в соответствии со значениями переменной « вальс». Было бы здорово, если бы цветовой код варьировался от красного (значение 0) через белый (значение 0,5) до синего (значение 1).
К сожалению, мне уже очень трудно создать простой троичный график с 6 категориями на переменную. Поэтому я был бы очень рад, если бы вы порекомендовали решение. Заранее большое спасибо!
1 ответ
Что-то вроде этого?
# adapted from the documentation example: https://ggplot2.tidyverse.org/reference/scale_gradient.html
library(ggtern)
set.seed(1)
library(tidyverse)
library(ggtern)
grid %>%
mutate(across(starts_with("Var"), as.numeric)) %>%
ggtern(aes(Var1, Var2, Var3)) +
geom_tri_tern(bins=10,aes(fill=after_stat(count))) +
scale_fill_gradientn(colors = c("red", "white", "blue"),
values = c(0, 0.5, 1))