0

4Dプロットを描きます。

私のプロットにはいくつかの部分があります ( surface )。

各パーツ (各サーフェス) を異なる配列で生成します。

グラフの最後の部分 (最後の面) には 2 つのセクションがあります。

上に1つ、後ろに2つ目。

しかし、これのグラフでpylabは正しくありません。

最後のサーフェスは常にグラフの一番上にあります。(回転した場合はmat、表面が上に表示されていました)

カオスプロット ここに画像の説明を入力

EDIT: コード:

#!/usr/bin/python3
from scipy.integrate import odeint
from numpy import var
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import time as tim
import matplotlib as mpl
epsel=np.array(1.*10**(-5),float)
ru=np.array(.264,float) #free parameter
ddd=100
ddd2=(ddd+1)**2
bi =  np.zeros((4,ddd2,4),float)
bbb=1.
def boundary1(ru,ddd=100):#x=y
    namnam=0
    for zz in np.linspace(-bbb,bbb+1.,ddd):
        for tt in np.linspace(-bbb,bbb,ddd):
            bi[0,namnam,:]=[tt+epsel,tt+epsel,zz+epsel,0]
            namnam=namnam+1
    return(namnam)
def boundary2(ru,ddd=100):#x=0############################################
    namnam=0
    for zz in np.linspace(-bbb,bbb+1,ddd):
        for yy in np.linspace(-bbb,bbb,ddd):
            bi[1,namnam,:]=[0.+epsel,yy+epsel,zz+epsel,1]
            namnam=namnam+1
    return(namnam)
def boundary3(ru,ddd=100):#z=0
    namnam=0
    for xx in np.linspace(-bbb,bbb,ddd):
        for yy in np.linspace(-bbb,bbb,ddd):
            bi[2,namnam,:]=[xx+epsel,yy+epsel,0.+epsel,2]
            namnam=namnam+1
    return(namnam)
def boundary4(ru,ddd=100):
    namnam=0
    for zz in np.linspace(-bbb,bbb+1.,ddd):
        for tt in np.linspace(ru**(.5),bbb,ddd/4):
            bi[3,namnam,:]=[tt+epsel,1./tt+epsel,zz+epsel,3]
            namnam=namnam+1
        for tt in np.linspace(ru**(.5),bbb,ddd/4):
            bi[3,namnam,:]=[1./tt+epsel,tt+epsel,zz+epsel,3]
            namnam=namnam+1
        for tt in np.linspace(ru**(.5),bbb,ddd/4):
            bi[3,namnam,:]=[-tt+epsel,-1./tt+epsel,zz+epsel,3]
            namnam=namnam+1
        for tt in np.linspace(ru**(.5),bbb,ddd/4):
            bi[3,namnam,:]=[-1./tt+epsel,-tt+epsel,zz+epsel,3]
            namnam=namnam+1
    return(0)
def bound(ru,ddd=100):
    bbb=2.*ru
    boundary4(ru,ddd=100)
    boundary3(ru,ddd=100)
    boundary2(ru,ddd=100)
    boundary1(ru,ddd=100)
    return(0)

bound(ru,ddd=100)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for i in range(4):
    ax.scatter(bi[i,:,0],bi[i,:,1],bi[i,:,2],c=bi[i,:,3], cmap=plt.hot())
plt.show()
4

0 に答える 0