3D поверхность с 2D проекцией с использованием R - PullRequest
0 голосов
/ 07 ноября 2018

Мне нужно построить трехмерную поверхность с 2D-проекциями, как показано ниже, используя R.

3D plot

Он имеет трехмерный график плотности, например, что-то легко сделать в R, используя график. С другой стороны, 2D-поверхности мне пока не повезло в поисках того, как их рисовать. Лучшее, что я нашел, это этот пример , но он использует Python вместо R.

Я также обнаружил, что пакет RSM (Response Surface Methods) может иметь инструменты для рисования этого графика, но я изучил документацию пакета и искал онлайн-примеры, и до сих пор не смог найти ничего похожего на этот график по качеству.

Базовая функция R persp похоже, что она тоже может дать какой-то ответ, но я пока не добился успеха в ее использовании для рисования 2D-проекций. Пакет plot3D может также предложить подсказки к решению.

Заранее спасибо за любую помощь в этом.

1 Ответ

0 голосов
/ 08 августа 2019

Ну, я не знаю, как выглядят ваши данные, но если у вас нет конкретных данных, вы можете использовать эту ссылку r-plotly surface .

Вот пример использования данных вулкана R.

Хитрость в использовании contours()

код:

# volcano is a numeric matrix that ships with R
plot_ly(z = ~volcano) %>% add_surface(
  contours = list(
    z = list(
      show=TRUE,
      usecolormap=TRUE,
      highlightcolor="#ff0000",
      project=list(z=TRUE)
    ),
    y = list(
      show=TRUE,
      usecolormap=FALSE, # Projection without colormap
      highlightcolor="#ff0000",
      project=list(y=TRUE)
    ),

    x = list(
      show=TRUE,
      usecolormap=TRUE,
      highlightcolor="#ff0000",
      project=list(x=TRUE)
    )

  )
)

Выход:

3dplot

...