programing

X, Y, Z 데이터, Excel 또는 기타 도구에서 3D Ploting

codeshow 2023. 9. 19. 21:32
반응형

X, Y, Z 데이터, Excel 또는 기타 도구에서 3D Ploting

다음과 같은 데이터가 있습니다.

1000    13  75.2
1000    21  79.21
1000    29  80.02
5000    29  87.9
5000    37  88.54
5000    45  88.56
10000   29  90.11
10000   37  90.79
10000   45  90.87

첫 번째 열을 x 축 레이블로, 두 번째 열을 y 축 레이블로, 세 번째 열을 z 값으로 사용하고자 합니다.저는 그런 식으로 표면을 표시하고 싶습니다.이것을 하는 가장 좋은 방법은 무엇입니까?저는 엑셀을 시도해 보았지만 실제로는 아무 것도 얻지 못했습니다.이것을 할 수 있는 도구에 대한 제안이 있는 사람이 있습니까?엑셀에서 이걸 어떻게 하는지 아는 사람?

감사해요.

결국 매트플롯립을 하게 되었습니다 :)

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
x = [1000,1000,1000,1000,1000,5000,5000,5000,5000,5000,10000,10000,10000,10000,10000]
y = [13,21,29,37,45,13,21,29,37,45,13,21,29,37,45]
z = [75.2,79.21,80.02,81.2,81.62,84.79,87.38,87.9,88.54,88.56,88.34,89.66,90.11,90.79,90.87]
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2)
plt.show()

3열의 데이터를 '표면'으로 표시할 수 없습니다.'Z' 데이터 열이 하나만 있으면 표면이 아닌 3차원 공간에 선이 표시됩니다(또는 데이터의 경우 세 개의 별도 선).Excel이 이 데이터를 사용할 수 있으려면 다음과 같이 형식을 지정해야 합니다.

      13    21   29      37    45   
1000  75.2                              
1000       79.21                            
1000             80.02                      
5000             87.9                   
5000                    88.54               
5000                           88.56            
10000            90.11      
10000                   90.79   
10000                          90.87

그런 다음, 실제 표면을 얻으려면 모든 결측 셀에 적절한 Z 값을 채워야 합니다.이 데이터가 없는 경우 표면에 대한 데이터가 충분하지 않으므로 3개의 개별 2D 선으로 표시하는 것이 좋습니다.

Excel이 위의 데이터를 제공하는 최고의 3D 표현은 매우 혼란스럽습니다.

enter image description here

이 제한된 데이터셋을 2D 데이터로 표현하는 것이 더 나은 선택이 될 수 있습니다.

enter image description here

향후 참고 사항으로, 이러한 유형의 질문은 보통 superuser.com 에서 조금 더 효과적입니다.

3D 플롯을 위해 사용자 라이브러리를 사용할 수 있습니다.

단계는 다음과 같습니다.

먼저 data.frame() 명령을 사용하여 데이터 프레임을 만듭니다.

산점도 3D 라이브러리를 사용하여 3D 그림을 만듭니다.

또는 plot3d() 명령을 사용하여 rgl 라이브러리를 사용하여 차트를 회전할 수도 있습니다.

또는 rcmdr 라이브러리에서 plot3d() 명령을 사용할 수도 있습니다.

MATLAB에서는 필요에 따라 surf(), mesh() 또는 surfl() 명령을 사용할 수 있습니다.

[http://in.mathworks.com/help/matlab/examples/creating-3-d-plots.html ]

사용할 수도 있습니다.Gnuplot에서 구할 수도 있는gretl. 텍스트 파일에 xyz 데이터를 입력하고 다음을 삽입합니다.

splot 'test.txt' using 1:2:3 with points palette pointsize 3 pointtype 7

그러면 다음을 이용하여 라벨 등을 설정할 수 있습니다.

set xlabel "xxx" rotate parallel
set ylabel "yyy" rotate parallel
set zlabel "zzz" rotate parallel
set grid
show grid
unset key

같은 값을 포함하는 행을 병합하는 것은 어떨까요?

         13    21    29     37    45   
  • 1000] -75.2 -- 79.21 -- 80.02

  • 5000] ---------------------87.9---88.54----88.56

  • 10000] -------------------90.11--90.97----90.87

엑셀은 그것을 꽤 잘 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/15881959/3d-plotting-from-x-y-z-data-excel-or-other-tools

반응형