2016-08-16 111 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

這是怎麼回事?

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

代替

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

爲什麼要投票?這個答案和其他答案一樣有效。首選格式只是一個口味問題。歡迎您只贊成其他答案,但品味不應該激勵投票。 – Julien

1

您可以使用str.format()插入的當前值,B和N:

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

謝謝,它的工作 –