[英]Drawing tangent plot in Python (matplotlib)
今天我決定用Python編寫簡單的程序,只是為了在考試之前練習。 首先,我想繪制罪和cos的情節,這並不是那么難。 但后來,我決定挑戰自己,畫出切線的情節。
import pylab as p
x= p.arange(-1.0,1.0,0.1)
y= (p.sin(2*p.pi*x)) / (p.cos(2*p.pi*x))
p.plot(x,y,'g-',lw=1)
p.show()
它返回......呃......這個:
如您所見,它看起來更像是ECK圖而不是切線圖。 有誰知道什么是錯的?
如果增加x
的點數,
import pylab as p
import numpy as np
x = p.linspace(-1.0, 1.0, 1000)
y = (p.sin(2 * p.pi * x)) / (p.cos(2 * p.pi * x))
p.plot(x, y, 'g-', lw=1)
p.show()
你得到這樣的東西:
注意y-range
有多大。 Matplotlib無法顯示切線曲線中的大部分小值,因為范圍太大。
通過忽略漸近線附近的極大值可以改善該圖。 使用Paul的解決方法來處理漸近線,
import pylab as p
import numpy as np
x = p.linspace(-1.0, 1.0, 1000)
y = (p.sin(2 * p.pi * x)) / (p.cos(2 * p.pi * x))
tol = 10
y[y > tol] = np.nan
y[y < -tol] = np.nan
p.plot(x, y, 'g-', lw=1)
p.show()
你得到
import pylab as p
x= p.arange(-1.0,1.0,0.01) # <- 0.01 step size.
y= (p.sin(2*p.pi*x)) / (p.cos(2*p.pi*x))
# y = p.tan(2*p.pi*x)
p.plot(x,y,'g-',lw=1)
p.ylim([-4, 4]) # <- Restricting the ylim so we don't see the ~inf values.
p.show()
如果你沒有設置ylim,這將是結果。 (值接近無窮大)
設置ylim的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.