Невозможно создать трехмерную поверхность с помощью plot_ly - PullRequest
0 голосов
/ 04 декабря 2018

MWE: кадр данных показан ниже.

"TVF" "minEuler" "E_avg"
29.63 -12 3.65
30.00 -26 3.311
30.24 -72 8.247
30.82 -47 13.02
20.25 -6 2.085
14.53 -32 2.154
14.66 -1 1.44
24.12 -82 6.784
21.25 -35 4.309
25.82 -17 2.697
26.15 -42 2.832
18.38 -29 2.038
18.51 -80 5.514
14.67 -58 1.91
20.40 -166 2.786
26.50 -69 6.794
40.97 -12 24.852
18.98 -102 3.107
19.15 -75 3.85
40.54 -48 16.347
35.09 -41 18.847
28.15 -73 5.963
40.25 -94 21.82
24.28 -53 6.245
30.34 -42 25.578

КОД:

plot_ly(x = S_TVF_Euler_E_axes$TVF, y = S_TVF_Euler_E_axes$minEuler, 
        z = S_TVF_Euler_E_axes$E_avg, type = 'surface')

ВЫХОД:

No surface is created

ЦЕЛЬ: Подгоните поверхность к точечной диаграмме (или непосредственно нанесите поверхность).Я мог построить график рассеяния, используя plot_ly, но поверхность не работает.Я также пробовал этот , который не работал для меня.

Я новичок в 3D графиках, и любая помощь или подсказка очень ценится!

1 Ответ

0 голосов
/ 05 декабря 2018

Как объясняет s_t, нам нужна матрица для построения поверхности.Я попробовал немного другой способ, используя функцию interp из пакета akima.Я понял идею из ответа "mschilli" здесь .

> S_TVF_Euler_E_axes_plotly <- with(S_TVF_Euler_E_axes, interp(TVF, 
                                  minEuler, E_avg, duplicate = "mean"))
> plot_ly(x = S_TVF_Euler_E_axes_plotly$x, y = S_TVF_Euler_E_axes_plotly$y, 
        z = S_TVF_Euler_E_axes_plotly$z, type = 'surface')

Surface only

Теперь я волнуюсь, если мойповерхность правильная или неправильная, она совсем не соответствует решению, предоставленному s_t!

...