Изменить направление заголовка и метки оси в 3dplots в R?

У меня есть вопрос, который может быть простым для человека, который является экспертом в R-графике. Мне нужно нарисовать 3D-график в R. Мои данные следующие:

df <- data.frame(a1 = c(489.4,  505.8,  525.8,  550.2,  576.6),
a2 = c(197.8,  301,    389.8,  502,    571.2),
b1 = c(546.8,  552.6,  558.4,  566.4,  575),
b2 = c(287.2,  305.8,  305.2,  334.4,  348.6), c1 = c(599.6,  611.4,  
623.6,  658,    657.4), c2 = c(318.8,  423.2,  510.8,  662.4,  656),
d1 = c(616,    606.8,  600.2,  595.6,  595),
  d2 = c(242.4,  292.8,  329.2,  378,    397.2),
e1 = c(582.4,  580,    579,    579,    579),
e2 = c(214,    255.4,  281.8,  303.8,  353.8))

colnames(df) <- rep(c("V1", "V2"), 5)
df.new <- rbind(df[, c(1, 2)],df[, c(3, 4)],df[, c(5, 6)],               
df[, c(7, 8)],df[, c(9, 10)])
df.new$Group <- factor(rep(c("a","b","c","d","e"), each = 5))
df.new$Class <- rep(c(1:5), 5)

Я рисую 3D-график, используя пакет scatterplot3d.

x=df.new$Class
y=V1
z=V2
scatterplot3d(x,y,z, pch = 16, color=colors,main="3D V1 v.s V2",xlab = 
"Class",ylab = "V1", zlab = "V2")

Сейчас хочу сделать 2 модификации. Один из них — сделать вертикальный заголовок этих осей горизонтальным, а другой — поставить метку для значений x и, например, поставить метку «первый интервал» для 1 в значениях x и так далее, и так далее. Как мне это сделать?

Кроме того, как я могу сделать точки линейными или плоскими вместо точек.


person questionaskerprogrammer    schedule 26.08.2018    source источник


Ответы (1)


Один из них - сделать вертикальный заголовок этих осей горизонтальным

Для этого вам нужно скрыть текущую метку и использовать функцию text(), чтобы добавить повернутую метку в нужное место; как описано здесь Повернуть метку оси Y в scatterplot3d (отрегулировать угол оси)

set.seed(42)
scatterplot3d(rnorm(20), rnorm(20), rnorm(20), ylab = "")
text(x = 5, y = -2.5, "Y-axis", srt = 45)

и например поставить метку "первый интервал" для 1 в значениях x и так далее и тому подобное. Как мне это сделать?

Из документации - https://cran.r-project.org/web/packages/scatterplot3d/scatterplot3d.pdf Используйте атрибут x.ticklabs, например:

xlabs <- c("first interval", "second", "third", "fourth", "this is 5")
scatterplot3d(x,y,z, pch =16,main="3D V1 v.s V2",xlab = "Class",ylab = "V1", zlab = "V2", x.ticklabs=xlabs)

Кроме того, как я могу сделать точки линейными или плоскими вместо точек.

Scatterplot3d предлагает «линии» и «вертикальные линии», например:

scatterplot3d(x,y,z , type="l", lwd=5, pch=" ")
#or
scatterplot3d(x,y,z , type="h", lwd=5, pch=" ")
person M.Viking    schedule 27.08.2018
comment
Ваши ответы кажутся идеальными, за исключением случаев, когда я пытаюсь построить линейный график, он просто рисует одним цветом и игнорирует другие цвета? - person questionaskerprogrammer; 27.08.2018
comment
Также можно построить плоскость для каждого цвета? - person questionaskerprogrammer; 27.08.2018