2011-01-14 9 views
6

まず、私はpythonとmatplotlibを初めて使っています。私は暗黙の方程式のいくつかのシステムを1つの図にプロットする必要があります。matplotlibの(暗黙の)方程式の系をプロットする

方程式はの形式は以下のとおりである

3x+2y=1 

は、最初の式は、明示的な製造以外これらをプロットする簡単な方法(すなわちy=...)がありますか?

答えて

4

次の2つの空間次元での暗黙的なプロットを行うためにcontour()を使用することができます。

x = numpy.linspace(-2., 2.) 
y = numpy.linspace(-2., 2.)[:, None] 
contour(x, y.ravel(), 3*x + 2*y, [1]) 

3で寸法が、私の代わりにmatplotlibののMayaviを使用することをお勧め。

+0

Hm ..これは同じでなければならないy =(1-3x)/ 2のグラフとは異なるグラフを生成するようです。なぜどんなアイデア? – 0sh

+0

@mewoshh:正確なコードを表示できますか? 'contour(x.ravel()、y、y-(1-3 * x)/ 2、[0])'のようなものでなければなりません。グラフは上記のコードと同じにする必要があります。 –

+0

'contour(x.ravel()、y、y-(1-3 * x)/ 2、[0])'と同じです。問題は、これが 'y =(1-3x)/ 2'の事実グラフと同じではないということです。これを 'x = np.arange(-6,6,0.01);と比較してください。 y =(1-3 * x)/ 2;プロット(x、y) '。 – 0sh

7
import numpy as np 
import matplotlib.pyplot as plt 
# Note the order of y,x. 
y,x=np.ogrid[-5:5:100j,-5:5:100j] 
plt.contour(x.ravel(),y.ravel(),3*x+2*y,[1]) 
plt.show() 

alt text

+0

そして3つの空間次元については、[Mayavi](http://code.enthought.com/projects/mayavi/docs/development/html/mayavi/auto/mlab_helper_functions.html#enthought.mayavi.mlab)を使用することをお勧めします。 contour3d)を使用します。 (あなたの写真があるので私の答えを削除します:) –

+0

@Sven Marnach:私はあなたの解決策が好きです。おそらくそれを元に戻す? – unutbu

+0

あなたの特別なリクエストでOK: –

関連する問題