Цветные плитки (треугольники) категориального троичного/симплексного графика в соответствии с числовыми значениями

У меня есть набор данных с комбинациями трех категориальных переменных (каждая из 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))

Другие вопросы по тегам