2016-08-16 8 views
-1
import numpy as np 
import matplotlib.pyplot as plt 
%pylab inline 

def fun (x): #piecewise functions 
    if x< -1: 
     return 2*x + 4 
    elif -1<= x <= 1: 
     return 2*x**2 
    elif x>1: 
     return 2 

vfun = np.vectorize(fun) 
a=-4   #as provided in question paper 
b=5 
N=50 
x = np.linspace(a, b, N) 
pylab.xlim(a, b) 
pylab.ylim(vfun(x).min(), vfun(x).max()) 
axvline(x=-1.,color='k',ls='dashed') 
axvline(x=1.,color='k',ls='dashed') 
y= vfun(x) 

pylab.xlabel('x') #labeling 
pylab.ylabel('y') 
pylab.title('My First Plot') 


plt.plot(x, y, '.') # dotted style of line 
plt.show() 

インターバルが変更された場合、タイトルを更新するにはどうすればよいですか?たとえば、タイトルが"f(x) E [-4,5], N=50"の場合インターバルが[-2,3]に変更された場合、タイトルを自動的に更新するにはどうすればいいですか?matplotlibとpylabを使ってチャートのタイトルを自動的に更新する

+0

をあなたのタイトルを更新インタラクティブなプロットをしたいですかaxvlinesを動かす?あなたの例はインタラクティブではありません(また、いくつかの小さな間違いを修正する必要があります)。インタラクティブなプロット[here](http://matplotlib.org/examples/pylab_examples/cursor_demo.html)の例があります。 – Emilien

答えて

-1

あなたは、BとNの現在の値を挿入するためにstr.format()を使用することができます

pylab.title("f(x) E ["+str(a)+","+str(b)+"], N="+str(N)) 

代わりの

pylab.title('My First Plot') 
+0

なぜ投票が下りましたか?この回答は他の回答と同様に有効です。 'format'のほうが好みの問題です。あなたは他の答えだけをアップヴォートすることを歓迎しますが、味はダウン投票を動機づけるべきではありません。 – Julien

1

pylab.title('f(x) E [{0},{1}], N={2}'.format(a,b,N)) 
+0

ありがとう、それは働いた –

関連する問題