2017-07-19 20 views
0

私はPythonで同じ画像に2つのスペースカーブを描きたいと思います。Pythonで複数の3D曲線画像を描画するにはどうすればよいですか?

したがって、2つのAxes3D.plotを使用して曲線を描画します。しかし、結果の画像には最後の画像しか表示されません。 Axes3D.scatterを使用すると、すべての点を表示できます。

はここに私のコードです:あなたのイメージで

from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 
import numpy as np 
import math as mt 
from mpl_toolkits.mplot3d import Axes3D 


t=2 #t can be changed 

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

#data 

def unitilize(x,y,z): 
    r=mt.sqrt(x**2+y**2+z**2) 
    return x/r, y/r, z/r 

def g_1(x,y,z): 
    x=t*x     
    z=z/t     
    x,y,z=unitilize(x,y,z) 
    return x,y,z 

stepCnt=10000   ######step 
#########data################# 
xs = np.empty((stepCnt + 1,)) 
ys = np.empty((stepCnt + 1,)) 
zs = np.empty((stepCnt + 1,)) 

#Setting initial values 
def huatu(x,y,z): 

    xs[0], ys[0], zs[0] =unitilize(x,y,z) 

    for i in range(stepCnt): 
     xs[i+1],ys[i+1],zs[i+1]=g_1(xs[i], ys[i], zs[i]) 
    return xs,ys,zs 


xs3,ys3,zs3=huatu(1,10,40) 
ax.plot(xs3, ys3, zs3, color='b', marker='x') 

xs2,ys2,zs2=huatu(1,0,40) 
ax.plot(xs2, ys2, zs2, color='r', marker='o') 

enter image description here

答えて

0

、それは青い線があるように見えますが、それは赤いラインの背後に隠されています(あなたは青コーナーが飛び出して見ることができます赤い円の)。青い線でデータを変更してみると、それを見ることができるはずです。

+1

これはコメントである必要があります。 – dawg

+0

コメントをするのに十分な担当者がいません。 – ahota

+0

ありがとう!私は解決策を見つけました。私は 'xs = np.empty((stepCnt + 1、))'を関数 'huatu'に入れて、xs2とxs3が異なるデータを持つようにする必要があります。しかし、私はこれがどのように起こるのではありません! –

関連する問題