不二如是 发表于 2020-2-20 23:08:56

18 - DIY封装函数图的函数

本帖最后由 不二如是 于 2020-2-21 12:06 编辑

上一讲我们见识了用 NumPy 画图的高效,本次我们自己创建一个函数来封装绘图过程。

在上一讲最后我们知道 NumPy 中自带了超多的数学函数,如果都需要画图,我们为何不自己封装一个画图函数呢?

毕竟人生苦短,我们要用代码提高效率!

先导入库:


我们自定义一个函数:


初始化了几个参数。

p 为取值范围:-10 到 10 中采样 1000 个点;x1 和 y1 取值范围;s 代表刻度间隔为 1 。

函数体就是上一讲中的函数设置内容:
**** Hidden Message *****

因为用到了 MultipleLocator 来改动刻度间隔,所以修改导入:


好啦,函数封装好了,用 cos 函数测试下:


看到输出,说明封装成功~

再来测试个 tan 函数:


嗯?箭头所指的地方,应该是虚线才对。

看来我们封装的函数还不够完美,因为绘图库只会连线,不知道实现和虚线。

如何优化呢?

既然是 tan 会涉及到无穷大/小,那么我们可以指定超过多少值,就让其 nan,然后就无法画出。

目前 y 上下限就是 10,我们设置大于 100 就为 nan,修改封装函数:


输出:


现在就很完美了。

有些问题只有在测试中,才能找到 bug,修改并优化是程序员必备爱好。

再来看下 np.sign() 判断正负函数:


大于 0 返回 1,反之为 -1 。

再来看 np.ceil 取整函数:


都是向上取整。

np.floor 是向下取整,样子和 ceil 很像。

官方带的函数,我们都可以用。

那么自己编的函数可不可以呢?

试一试:


带入测试下:


完美~

下一讲我们来看绘制三维函数的图像!

源代码:



如果有收获,别忘了评分{:10_281:} :

http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif

如果想看更多,请订阅 淘专辑(传送门)(不喜欢更要订阅{:10_297:} )

zltzlt 发表于 2020-2-21 10:01:53

NumPy 也太好玩了吧~

TCY 发表于 2020-2-21 11:07:32

NumPy 也太好玩了吧~

tjuwlb 发表于 2020-3-8 12:19:33

NumPy 也太好玩了吧~

听风夜雨 发表于 2020-4-5 08:35:18

NumPy 也太好玩了吧~

zsygsnbfsdm 发表于 2020-7-4 15:10:23

NumPy 也太好玩了吧~

卡卡尼西亚 发表于 2020-7-24 14:52:41

NumPy 也太好玩了吧~

Tikooy 发表于 2023-10-22 17:03:00

NumPy 也太好玩了吧~
页: [1]
查看完整版本: 18 - DIY封装函数图的函数