2016-04-29 12 views
-1

fを独立変数xと1つ以上のパラメータbに依存する関数とします。 私の目標は、同じ画像に複数のbの値をfとして描画することです。そして私はそれがグローバルな価値であることを望みます(私はそれを素早く変更することができます)。 は考えてみましょうコードpython:1つのsubplot2グリッド画像の複数のプロット

import numpy as np 
import pylab as pl 

b=0.5 
def f(x,b): 
    return np.sin(x*b)*b 

X = np.linspace(0,10,1000) 
F = f(X,b) 
pl.figure(figsize=(12, 16), num="My sine") 
pl.plot(X, F, label='b = %f' %b) 
pl.legend(loc="best") 

このコードは、単にBに別の値で、複数回評価することができます。その後、すべての曲線が同じ図形に描画されます。今

問題: 私はpl.plotpl.legend

pl.subplot2grid((4, 1), (0, 0), rowspan=3) 

を入れて上記のコードでは場合は、コードのすべての新しい評価は、新しい空白の図に描かれています。

したがって、どのようにしてpl.subplot2gridを使用すると、それぞれの評価が同じ図形に描かれているのですか?

答えて

1

たぶん、あなたはこのような何かを探しているが、私はお勧め、TFV、あなたのようにLookAtf機能内部forループ、と今それをやった

import numpy as np 
import pylab as pl 

def f(x,b): 
    return np.sin(x*b)*b 

def draw(b): 
    X = np.linspace(0,10,1000) 
    F = f(X,b) 
    ax1.plot(X, F, label='b = %f' %b) 


# Main program 
fig = pl.figure(figsize=(12, 16), num="My sine") 
ax1 = pl.subplot2grid((4,3), (0,0), colspan=2) 

for b in [0.4, 0.5, 0.6]: 
    draw(b) 

pl.legend(loc="best") 
pl.show() 

enter image description here

+0

あなたの提案についての良いことは、実際にはすべての曲線を同じ図形に描画することです。しかし、可能であれば、私はグローバルな価値を維持したいと思います。 – Chris

+0

そして悪いことは? – tfv

+0

私はグローバルにしておきたいと思います。ループ内のどこにも指定されていません。 – Chris

0

を?:します。ここに私の結果ですMy result

しかし、伝説はまだ私が望むようにしていません。 しかし、とにかくヒントのおかげで!

@ Arthur Havlicek: 実際には、私のコードはすでに3つのパートに分かれています。 3.部品が評価されると自動的に部品がインポートされ、再び部品が自動的にインポートされます。 実際、私の場合は、関数定義の後に定数を定義することはできません。その理由は、関数の定義方法は定数の選択に依存するからです。だから、まず関数を定義する方法をPythonに知らせるために定数を定義しなければなりません。

関連する問題