2016-06-08 2 views
1

현재 저는이 모든 좌표를 가지고 있으므로 모든 좌표 조합의 3D 산점도를 만드는 것이 매우 쉽습니다. 나는 순서에서 다음 지점으로 라인 각 지점을 연결하려고 많은 문제로 실행했습니다 http://i.stack.imgur.com/KKw1D.png3D scatter plot의 점을 어떻게 연결할 수 있습니까?

:이 코드는 나에게로 그래서 결과를 제공

fig = plt.figure(figsize=(20,10)) 
ax = plt.axes(projection='3d') 

z = numpy.transpose(z_coords_row)[0:100] 
x = numpy.transpose(x_coords_row)[0:100] 
y = numpy.transpose(y_coords_row)[0:100] 

plt.xticks(numpy.arange(-1.5, 1.5, .25)) 
plt.yticks(numpy.arange(-1.5, 1.5, .5)) 

ax.scatter(x, y, z,s=1) 
ax.view_init(elev=10., azim=45) 

. 배열에서 각 점을 다음 점과 연결하여 부드러운 선 그래프로 만들려면 어떻게해야합니까?

+0

나는 3 차원 차트에 대해 아무것도 몰라 ...하지만 난이 과정은'interpolation'라고 알고있다. 위키에 따르면 보간법은 알려진 데이터 포인트의 개별 세트 범위 내에서 새로운 데이터 포인트를 구성하는 방법입니다. 이 새로운 키워드가 도움이 될지도 모릅니다. –

+0

내가 지금까지 사용해 왔던 것에서 보간법은 1D에서만 작동하고 라인보다는 포인트 세트를 더 많이 제공합니까? 누구나 내가 틀렸다면 나를 바로 잡을 수있다. –

+0

http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.interpolate.griddata.html –

답변

3

좌표 만 사용하는 경우 찾고있는 것이 plot3D입니다. 보다 부드러운 라인이 필요한 경우 scipy.interpolate.RegularGridInterpolator을 조사하면 더 많은 포인트가 생성되어 plot3D에 삽입 할 수 있습니다. plot3D의 사용

예 :

import numpy 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

fig = plt.figure(figsize=(20,10)) 
ax = plt.axes(projection='3d') 

z_coords_row = numpy.sin(numpy.linspace(0,2*numpy.pi,100))+5 
x_coords_row = numpy.sin(numpy.linspace(0,2*numpy.pi,100)) 
y_coords_row = numpy.cos(numpy.linspace(0,2*numpy.pi,100)) 

z = numpy.transpose(z_coords_row)[0:100] 
x = numpy.transpose(x_coords_row)[0:100] 
y = numpy.transpose(y_coords_row)[0:100] 

plt.xticks(numpy.arange(-1.5, 1.5, .25)) 
plt.yticks(numpy.arange(-1.5, 1.5, .5)) 

ax.scatter(x, y, z,s=5) 
ax.plot3D(x,y,z) 
ax.view_init(elev=10., azim=45) 

enter image description here

+0

ax.plot3D를 사용하려고하면 (x, y, z), 그것은 나에게 오류를 준다 : 'ValueError : 셋째 arg는 형식 문자열이어야한다'. 나는 그것을 잘못 사용하고 있는가? –

+0

@JesseBatson'ax'의 종류가'matplotlib.axes._subplots.Axes3DSubplot''입니까? –

+0

관련 문제