Проблема в построении и добавлении поверхности в графике - PullRequest
0 голосов
/ 19 февраля 2019

Я новичок в R и сейчас пытаюсь нанести свои данные на трехмерную диаграмму с поверхностью.Я попытался использовать пакет плотно, но не смог этого сделать.

У меня есть матрица d3 (см. Ниже), но на графике (см. Ссылку ниже), либо z, либо x равны даннымв матрице.На графике x всегда равно 1, а z - счетное число.

Что мне нужно изменить в коде?

Может быть, как я создал матрицу?

d3 <- data.matrix(mydataframe[1:3])
View(d3)
         z         y         x
[1,] 75.33333 1566.6667 0.2727273 
[2,] 76.66667 1585.6667 0.2788845
[3,] 75.33333 1462.6667 0.2384615
[4,] 77.66667 1340.6667 0.2489796
[5,] 75.66667 1328.3333 0.3658537
[6,] 83.33333 1315.6667 0.3459716
[...] ...

plot_ly(z = ~d3) %>% add_surface()

Вот пример моего неудачного трехмерного графика Plotly plot1

Если у кого-то есть идея о том, как изобразить 3 переменные с поверхностью, отличной от пакета, я бы действительно оценил это.

Это пример трехмерной регрессии, я хотел бы представить свои данные в тех же цветах plot2

Cheers.

1 Ответ

0 голосов
/ 20 февраля 2019

z должна быть матрицей.Вы можете использовать outer следующим образом:

x <- seq(0, 8, length.out=100)
y <- seq(0, 3, length.out=30)
z <- t(outer(x, y, FUN=function(x,y) 5/3*y + 4*exp(-(x-4)^2)))

library(plotly)
plot_ly(x=x, y=y, z=z) %>% 
  add_surface() %>%
  layout(
    scene = list(
      xaxis= list(title="X"),
      yaxis= list(title="Y"),
      aspectmode = 'manual', 
      aspectratio = list(x=1, y=1, z=.5)
    )
  )

enter image description here

...