|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2020-2-21 12:06 编辑
上一讲我们见识了用 NumPy 画图的高效,本次我们自己创建一个函数来封装绘图过程。
在上一讲最后我们知道 NumPy 中自带了超多的数学函数,如果都需要画图,我们为何不自己封装一个画图函数呢?
毕竟人生苦短,我们要用代码提高效率!
先导入库:
我们自定义一个函数:
初始化了几个参数。
p 为取值范围:-10 到 10 中采样 1000 个点;x1 和 y1 取值范围;s 代表刻度间隔为 1 。
函数体就是上一讲中的函数设置内容:
因为用到了 MultipleLocator 来改动刻度间隔,所以修改导入:
好啦,函数封装好了,用 cos 函数测试下:
看到输出,说明封装成功~
再来测试个 tan 函数:
嗯?箭头所指的地方,应该是虚线才对。
看来我们封装的函数还不够完美,因为绘图库只会连线,不知道实现和虚线。
如何优化呢?
既然是 tan 会涉及到无穷大/小,那么我们可以指定超过多少值,就让其 nan,然后就无法画出。
目前 y 上下限就是 10,我们设置大于 100 就为 nan,修改封装函数:
输出:
现在就很完美了。
有些问题只有在测试中,才能找到 bug,修改并优化是程序员必备爱好。
再来看下 np.sign() 判断正负函数:
大于 0 返回 1,反之为 -1 。
再来看 np.ceil 取整函数:
都是向上取整。
np.floor 是向下取整,样子和 ceil 很像。
官方带的函数,我们都可以用。
那么自己编的函数可不可以呢?
试一试:
带入测试下:
完美~
下一讲我们来看绘制三维函数的图像!
源代码:
18PaintFunc.zip
(555 Bytes, 下载次数: 0, 售价: 5 鱼币)
如果有收获,别忘了评分 :
如果想看更多,请订阅 淘专辑( 传送门)( 不喜欢更要订阅 ) |
|