Как создать трехмерный график поверхности в R, если у меня есть кадр данных из 3 столбцов? - PullRequest
0 голосов
/ 24 февраля 2020

Вот первые 20 строк моего фрейма данных:

            x             y        z
1        0.50          0.50 48530.98
2        0.50          0.51 49029.34
3        0.50          0.52 49576.12
4        0.50          0.53 50161.22
5        0.50          0.54 50752.05
6        0.50          0.55 51354.43
7        0.50          0.56 51965.09
8        0.50          0.57 38756.51
9        0.50          0.58 39262.34
10       0.50          0.59 39783.68
11       0.51          0.60 41052.09
12       0.51          0.61 41447.51
13       0.51          0.62 26972.85
14       0.51          0.63 27134.74
15       0.51          0.64 27297.85
16       0.51          0.65 27462.82
17       0.51          0.66 27632.45
18       0.51          0.67 27806.77
19       0.51          0.68 27988.12
20       0.51          0.69 25514.42

Мне нужно создать трехмерный график поверхности, чтобы просмотреть его. Лучше всего, если я поверну его вокруг углов, чтобы рассмотреть его со всех сторон.

Спасибо.

1 Ответ

2 голосов
/ 24 февраля 2020

Вы можете использовать plotly для создания трехмерного графика поверхности. Используйте xtabs, чтобы превратить ваши данные в подходящие matrix

library(plotly)
plot_ly(z = ~xtabs(z ~ x + y, data = df)) %>% add_surface()

enter image description here


Пример данных

df <- read.table(text =
    "           x             y        z
1        0.50          0.50 48530.98
2        0.50          0.51 49029.34
3        0.50          0.52 49576.12
4        0.50          0.53 50161.22
5        0.50          0.54 50752.05
6        0.50          0.55 51354.43
7        0.50          0.56 51965.09
8        0.50          0.57 38756.51
9        0.50          0.58 39262.34
10       0.50          0.59 39783.68
11       0.51          0.60 41052.09
12       0.51          0.61 41447.51
13       0.51          0.62 26972.85
14       0.51          0.63 27134.74
15       0.51          0.64 27297.85
16       0.51          0.65 27462.82
17       0.51          0.66 27632.45
18       0.51          0.67 27806.77
19       0.51          0.68 27988.12
20       0.51          0.69 25514.42", header = T)
...