3
3D 구형에서 샘플링하고 표시하고 싶습니다. plt.axis('equal')
명령에도 불구하고 구형이 아닌 타원형으로 보입니다. 여기 내 코드는 다음과 같습니다.구체처럼 보이는 구도를 그리시오
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def sphere_sampler(dimension=2,sample_size=1):
phi_1=np.random.uniform(low=0,high=np.pi,size=sample_size)
phi_2=np.random.uniform(low=0,high=2*np.pi,size=sample_size)
sample=np.empty((sample_size,dimension))
sample[:,0]=np.cos(phi_1)
sample[:,1]=np.sin(phi_1)*np.cos(phi_2)
sample[:,2]=np.sin(phi_1)*np.sin(phi_2)
return sample
pre_sample=sphere_sampler(3,1000)
sample=pre_sample.reshape(pre_sample.shape[0],3)
fig=plt.figure()
ax = fig.gca(projection='3d')
ax.scatter(sample[:,0],sample[:,1],sample[:,2])
ax.set_xlim(-1,1)
ax.set_ylim(-1,1)
ax.set_zlim(-1,1)
plt.axis('equal')
plt.show()
어떤 부분이 잘못 되었습니까? 디스플레이에 문제가있는 것 같습니다. 스케일을 변경하지 않기 위해 어떻게 show() 메소드를 만들 수 있습니까?