2009-12-31 7 views
35

현재 nx3 매트릭스 배열을 가지고 있습니다. 나는 3 개의 열을 3 개의 축으로 플롯하고 싶다. 어떻게하면됩니까?파이썬에서 3D scatter plot을 만드는 방법은 무엇입니까?

저는 go 인터넷을 사용했고 사람들은 Matlab을 사용하여 제안했지만 실제로 이해하는 데 어려움을 겪고 있습니다. 나는 또한 그것이 산란 음모가 필요합니다.

누군가 나를 가르 칠 수 있습니까?

+1

플롯을 수행 할 응용 프로그램을 찾고 있습니까, 아니면 플롯을 그리는 코드를 (어떤 언어로든) 작성하고 싶습니까? –

+0

asymptote를 사용하십시오 - 자유롭고 강력하며 품질은 최고입니다! –

+1

배열이있는 경우 프로그램이 있고이 배열이 그 배열의 일부라고 가정합니다. 어떤 종류의 프로그램 (언어)인지 알려 주시면 도와 드리겠습니다! –

답변

66

. matplotlib에는 원하는대로 정확히 수행 할 mplot3d 모듈이 있습니다.

가 X_iso 내 3
# Create the figure 
    fig = plt.figure() 
    ax = fig.add_subplot(111, projection='3d') 

    # Generate the values 
    x_vals = X_iso[:, 0:1] 
    y_vals = X_iso[:, 1:2] 
    z_vals = X_iso[:, 2:3] 

    # Plot the values 
    ax.scatter(x_vals, y_vals, z_vals, c = 'b', marker='o') 
    ax.set_xlabel('X-axis') 
    ax.set_ylabel('Y-axis') 
    ax.set_zlabel('Z-axis') 

    plt.show() 

동안 : 그것은 나를 위해 일한

matplotlib 3D image

+0

좋은 해결책. 'plt.zlabel ('zlabel')'은 작동하지 않습니다. z 축에 라벨을 붙이려면'ax.set_zlabel ('Z')'를 사용해야합니다. –

1

대신 점 치기를 사용하십시오! 이 http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy

점근선는 데이터 파일에서 읽을 수 있습니다 : http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf

코드입니다 :

이는 모습 수있는 것입니다.

그리고 전체 갤러리 : http://asymptote.sourceforge.net/gallery/

파이썬 내에서 점근선을 사용하려면 : 당신은 이것에 대한 matplotlib을 사용할 수 있습니다

http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py

-3
+0

MayaVi를 진지하게 고려해야합니다. 모든 3D 플로팅에 MayaVi를 사용합니다. 정말 좋습니다. –

+1

-1, 링크는 대답이 아닙니다. –

0

사용하여 다음 코드를

from matplotlib import pyplot 
from mpl_toolkits.mplot3d import Axes3D 
import random 


fig = pyplot.figure() 
ax = Axes3D(fig) 

sequence_containing_x_vals = list(range(0, 100)) 
sequence_containing_y_vals = list(range(0, 100)) 
sequence_containing_z_vals = list(range(0, 100)) 

random.shuffle(sequence_containing_x_vals) 
random.shuffle(sequence_containing_y_vals) 
random.shuffle(sequence_containing_z_vals) 

ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals) 
pyplot.show() 

은 위의 코드는 같은 그림을 생성 -D 배열 및 X_vals, Y_vals, Z_vals 복사/u 그 배열로부터 sed 1 컬럼/축을 각각 변수/배열에 할당합니다.

관련 문제