2016-11-01 16 views
0

저는 여러 가지 방법을 사용하여 Lorenz 시스템을 (수치 적으로) 풀고 있습니다. matplotlib를 사용하여 플로팅하고 있지만 점을 더 잘 구분할 수있는 방법이 필요합니다. 예를 들어Lorenz System을 가장 잘 묘사하는 방법은 무엇입니까?

:

가의 양식 이제

array([[ 0.5  , 0.5  , 0.5  ], 
     [ 0.50640425, 0.6324552 , 0.48965064]]) 
     #... 

코드 줄을 가지고 배열 a에 저장됩니다 그릴 수있는 점을 가정 해 봅시다

import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 
fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
ax.plot(a[:,0],a[:,1],a[:,2]) 
plt.show() 

생산 :

enter image description here

설명 적이 없습니까? 그래서 이산점을 그리는 것이 더 효과적 일 것이라고 생각했습니다. 그래서이 사람 :

import matplotlib.pyplot as plt 
from matplotlib import cm 
from mpl_toolkits.mplot3d import Axes3D 
fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
ax.scatter(a[:,0],a[:,1],a[:,2], s=0.2) 
plt.show() 

생산 :

enter image description here

하지만 내가 원하는대로 설명하지 않습니다. 나는 로렌츠 시스템을 그릴 수있는 가장 기술적 인 방법이 무엇인지 알고 싶다.

답변

2

산점을 투명하게 만드는 것을 고려하십시오. alpha 키워드를 plt.scatter으로 전달하면됩니다. 여기

ax.scatter(xs, ys, zs, alpha=1.0, s=0.2) 

opaque

그리고 alpha = 0.1으로 그려 같은 분산 포인트 클라우드된다 :

ax.scatter(xs, ys, zs, alpha=0.1, s=0.2) 

transparent 다음은 기본값입니다 alpha = 1.0로, mplot3dexample gallery에서 수정 예,의

이것은 끈적 거리는 소리 인 것처럼 보이지만 비주얼라이제이션의 경우 대화식 부분은 많은 수의 점에서 상당히 느립니다. 빠른 성능이 정말로 필요한 경우에는 행을 세그먼트로 분할하고 색인으로 색칠하는 대체 방법을 고려하십시오. here.

+0

와우, 그만큼 좋습니다. 감사합니다. – D1X