3-튜플로 표현된 3D 점 모음으로 작업할 때,plot_surface 함수가 이상적인 옵션인지 즉시 명확하지 않습니다. 표면 플로팅. 미묘한 차이를 살펴보고 이 함수를 위한 데이터를 준비하는 방법을 알아봅시다.
plot_surface를 사용하려면 X, Y, Z가 2D 배열이어야 합니다. 함수 f(x, y) ->의 표면 플롯과 달리; z, 그리드 도메인을 제공할 수 있는 경우 포인트 클라우드는 삼각측량을 필요로 하기 때문에 어려움을 겪습니다.
데이터는 3D 포인트 목록이므로 다음을 수행해야 합니다. 플롯_표면이 이해할 수 있는 형식으로 변환합니다. 한 가지 접근 방식은 다음 코드 조각에서 설명한 대로 meshgrid를 사용하여 그리드 도메인을 생성하는 것입니다.
<code class="python">import numpy as np data = [(x1,y1,z1),(x2,y2,z2),.....,(xn,yn,zn)] x, y = zip(*data) # Extract x and y coordinates from the tuples X, Y = np.meshgrid(x, y) # Create a grid domain for X and Y # Convert the z coordinates into a 2D array zs = np.array([z for x, y, z in data]).reshape(X.shape)</code>
이제 필요한 2D 배열 형식의 X, Y, Z가 있습니다.
데이터가 준비되면,plot_surface:
<code class="python">from mpl_toolkits.mplot3d import Axes3D # Enable 3D plotting import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # Create a 3D subplot ax.plot_surface(X, Y, Z)</code>
이렇게 하면 주어진 점을 통과하는 매끄러운 표면이 생성됩니다.
위 내용은 다음은 기사 내용에 맞는 몇 가지 질문 기반 제목입니다. * Matplotlib의 `plot_surface` 기능을 사용하여 3D 점 모음에서 표면을 어떻게 플롯할 수 있습니까? * Matplo에서 표면 플로팅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!