Маркировка точек и определение групповых цветов с помощью функции scatter3D() из библиотеки plot3D

Я новичок в R и у меня проблемы с визуализацией некоторых данных. У меня есть данные в таком виде: изображение таблицы данных

Я использовал функцию выше, чтобы построить их в 3D:

scatter3D(x=data$X, y=data$Y, z=data$Depth, bty=g, pch=20, cex=2, ticktype=подробно)

Теперь я хочу добавить имена (метки) к каждой точке (например, A1, A2 и т. д.) и создать группы с разными цветами (например, точки от A1 до A3 синие, от A4 до A6 красные). Я понятия не имею, как мне это сделать.


person g_souk    schedule 17.07.2021    source источник


Ответы (1)


Поскольку Вы не предоставили данных, невозможно дать ответ, относящийся непосредственно к Вашему вопросу. Всегда рекомендуется использовать dput() для предоставления хотя бы части ваших данных. Изображение данных не дает полезной информации. Также укажите пакеты, которые вы загрузили. В этом случае кажется вероятным, что вы загрузили plot3D, который содержит функцию scatter3D.

Страница руководства для scatter3D содержит ответы на все ваши вопросы (?scatter3D), но она подробная и может быть сложной для понимания. Изучая примеры, представленные на странице руководства, кажется, что следующее выполняет то, что вы хотите. Он использует набор данных USArrests, предоставленный R:

library(plot3D)
data(USArrests)
UP <- cut(USArrests$UrbanPop, breaks=quantile(USArrests$UrbanPop), include.lowest=TRUE)

Это загружает набор данных и создает категориальную переменную из переменной UrbanPop. Теперь основной сюжет:

with(USArrests, scatter3D(Murder, Assault, Rape, colvar = as.numeric(UP),
    col = c("red", "green", "blue", "violet"), theta = 60, phi = 20, 
    xlab = "Murder", ylab = "Assault", zlab = "Rape", main = "USA arrests", 
    cex = 1, pch=16, bty = "g", ticktype = "detailed", 
    d = 2, clab = "Urban Population", adj = 0.5, font = 2, 
    colkey=list(at = c(1.4, 2.1, 2.9, 3.6), side = 1, 
    addlines = TRUE, length = 0.75, width = 0.5,
    labels = c("1st Quart", "2nd Quart", "3rd Quart", "4th Quart"))))

Это создает базовый график с кружками, окрашенными квартилем процента городского населения для каждого штата. Получение позиций для маркировки легенды (at=) требует проб и ошибок. Теперь добавим текстовые метки:

with(USArrests, text3D(Murder, Assault, Rape, colvar = as.numeric(UP),
    col = c("red", "green", "blue", "violet"), colkey=FALSE,
    labels = state.abb, cex = .75, adj=-.5, add=TRUE))

Мы используем state.abb, который представляет собой двухсимвольную аббревиатуру для каждого состояния. 3D-график

person dcarlson    schedule 17.07.2021
comment
Большое спасибо за Ваш ответ и Ваше мнение по моему вопросу! - person g_souk; 18.07.2021