Трехмерный точечный график с использованием символов для маркеров с графиком в R

Я не могу отобразить все нужные символы с трехмерной диаграммой рассеяния в R, используя пакет plotly. Я знаю, что я растягиваю то, что различимо (например, цветовая палитра больше, чем n=8, а символы больше, чем n=6, R выдает предупреждения), и это нормально для моих исследовательских целей, но есть ли способ заставить закодировать желаемые стили маркеров?. Я пытался найти ответ на этот вопрос, но в моем случае это не сработало, поэтому я попытался извлечь фактические доступные символы и жестко запрограммировать их. Мне бы очень хотелось, чтобы и цвет, и форма менялись в зависимости от категориальной переменной «вид».

Вот мои поддельные данные, которые я пытаюсь имитировать результаты PCA:

df <- data.frame(my_x=rnorm(n=58,sd=30), 
   my_y=rnorm(n=58,sd=20),
   my_z=rnorm(n=58,sd=35),
   species=rep(letters,times=3, length.out=58))

#extracting possible symbols from plotly
vals <- schema(F)$traces$scatter$attributes$marker$symbol$values
vals <- grep("-", vals, value = T)
vals1 <- rep(vals[sample(x=c(1:length(vals)),size=58, replace = FALSE)

plot_ly() %>%
  add_trace(x= ~df$my_x, y= ~df$my_y, z= ~df$my_z,
            type="scatter3d", mode="markers", color=~df$species, symbol= ~I(vals1),
            marker = list(opacity = 0.7))

Трехмерная точечная диаграмма

plotly версии 4.9.3 с R версии 4.0.3 в RStudio версии 1.4.1103 в Windows 10.


person andemexoax    schedule 11.02.2021    source источник