Python에서 3D 산점도를 만드는 방법은 무엇입니까?
현재 nx3 행렬 배열이 있습니다. 세 개의 열을 세 개의 축으로 플로팅하고 싶습니다. 어떻게 할 수 있습니까?
나는 구글 검색을했고 사람들은 Matlab 사용을 제안 했지만 이해하는 데 정말로 어려움을 겪고 있습니다. 산점도도 필요합니다.
누군가 나를 가르쳐 줄 수 있습니까?
이를 위해 matplotlib 를 사용할 수 있습니다 . matplotlib에는 원하는 것을 정확히 수행 하는 mplot3d 모듈이 있습니다.
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()
위의 코드는 다음과 같은 그림을 생성합니다.
나를 위해 일한 다음 코드를 사용하십시오.
# 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()
X_iso는 내 3 차원 배열이고 X_vals, Y_vals, Z_vals의 경우 해당 배열에서 1 개의 열 / 축을 복사 / 사용하고 해당 변수 / 배열에 각각 할당했습니다.
대신 점근선을 사용하십시오!
다음과 같이 보일 수 있습니다.
http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf
이것은 코드입니다 : http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy
점근선은 데이터 파일에서도 읽을 수 있습니다.
전체 갤러리 : http://asymptote.sourceforge.net/gallery/
Python 내에서 점근선을 사용하려면 :
http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py
참고 URL : https://stackoverflow.com/questions/1985856/how-to-make-a-3d-scatter-plot-in-python
'Nice programing' 카테고리의 다른 글
indexPath로 uitableViewCell을 어떻게 얻을 수 있습니까? (0) | 2020.11.06 |
---|---|
두 어레이 사이의 교차점을 새 어레이로 어떻게 얻습니까? (0) | 2020.11.06 |
모든 사용자에게 내 응용 프로그램에서 만든 파일에 대한 전체 권한을 부여하는 방법은 무엇입니까? (0) | 2020.11.04 |
Django ModelForm : save (commit = False)는 무엇에 사용됩니까? (0) | 2020.11.04 |
npm을 사용하여 "devDependencies"만 설치하는 방법 (0) | 2020.11.04 |