Я хочу построить фигуру, где мое третье измерение (Z) определяется шестнадцатеричным цветом, который определяется набором из трех значений.
Я уже преобразовал три значения в гекс, используя rgb ().Теперь у меня есть фрейм данных, который имеет значения x и y в виде чисел и столбец az с кучей шестнадцатеричных значений.
Есть ли способ создать график, на котором каждая точка окрашивается шестнадцатеричным значением, будь то путем создания тепловой карты на графике или с помощью geom_raster / geom_tile в ggplot2.
Если естьэто еще один пакет, который я мог бы использовать это тоже хорошо.
Вот некоторый код, чтобы показать, что я сделал до сих пор
library(dplyr)
set.seed(1)
x <- c(1,1,1,2,2,2,3,3,3)
y <- c(1,2,3,1,2,3,1,2,3)
cap_1 <- runif(9,0,10)
cap_2 <- runif(9,0,10)
cap_3 <- runif(9,0,10)
df <- data.frame(x,y,cap_1,cap_2, cap_3)
Я конвертирую емкость (cap_1 в cap_3) в проценты, а затем создаю шестнадцатеричный цвет на основе основных цветов изпроценты
df <- df %>%
mutate(cap_sum = rowSums(df[3:5])) %>%
mutate(cap_1_p = cap_1/cap_sum) %>%
mutate(cap_2_p = cap_2/cap_sum) %>%
mutate(cap_3_p = cap_3/cap_sum) %>%
mutate(z = rgb(cap_1_p, cap_2_p,cap_3_p))
Я попытался нарисовать его как карту тепла безуспешно:
library(plotly)
fig <- plot_ly(df, x='x', y='y', z='z',
type = "heatmap")
fig