3D 공간에서 점을 나타내는 3-튜플 목록을 고려하여 이러한 점을 덮는 표면을 생성하는 작업입니다.
mplot3d 패키지의plot_surface를 사용하려면 X, Y, Z에 대한 2D 배열 형태의 입력 데이터가 필요합니다. 주어진 데이터 구조를 변환하려면 몇 가지 고려해야 할 사항이 있습니다.
표면의 경우 선 플롯과 달리 2D 배열을 사용하여 도메인을 덮는 그리드를 정의해야 합니다. 3D 점 목록만 사용하여 작업할 때는 삼각측량이 필수적입니다. 이는 주어진 포인트 클라우드에 대해 여러 가지 가능한 삼각측량이 있기 때문입니다.
매끄러운 표면을 위해 다음 접근 방식을 취할 수 있습니다.
<code class="python">import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import random def fun(x, y): return x**2 + y fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = y = np.arange(-3.0, 3.0, 0.05) X, Y = np.meshgrid(x, y) zs = np.array(fun(np.ravel(X), np.ravel(Y))) Z = zs.reshape(X.shape) ax.plot_surface(X, Y, Z) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()</code>
이 코드는 meshgrid를 사용하여 그리드를 정의하고, 해당 Z 값을 사용하고,plot_surface를 사용하여 표면 플롯을 생성합니다. 결과 표면은 기본 데이터를 매끄럽게 표현합니다.
위 내용은 Matplotlib를 사용하여 분산된 데이터에서 부드러운 3D 표면을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!