2024-06-13 10:25:29 发布
网友
今天我决定用Python编写一个简单的程序,只是为了考试前练习。首先,我想画出罪与因的情节,这并不难。但后来,我决定挑战自己,画出切线图。
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图而不是切线图。有人知道怎么了吗?
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的结果。
如果增加x中的点数
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无法显示切线曲线中的许多小值,因为范围太大。
y-range
忽略渐近线附近的极大值可以改进绘图。使用Paul's workaround处理渐近线
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()
你得到
如果不设置ylim,这将是结果。(数值接近无穷大)
设置ylim的结果。
如果增加
x
中的点数你会得到这样的东西:
注意
y-range
的大小。Matplotlib无法显示切线曲线中的许多小值,因为范围太大。忽略渐近线附近的极大值可以改进绘图。使用Paul's workaround处理渐近线
你得到
相关问题 更多 >
编程相关推荐