簡體   English   中英

在Python中繪制切線圖(matplotlib)

[英]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的結果

設置ylim的結果。

結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM