鱼C论坛

 找回密码
 立即注册
查看: 3989|回复: 7

[技术交流] 18 - DIY封装函数图的函数

[复制链接]
发表于 2020-2-20 23:08:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

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

先导入库:
Snip20200221_622.png


我们自定义一个函数:
Snip20200221_621.png


初始化了几个参数。

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

函数体就是上一讲中的函数设置内容:
游客,如果您要查看本帖隐藏内容请回复


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


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


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

再来测试个 tan 函数:
Snip20200221_626.png


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

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

如何优化呢?

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

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


输出:
Snip20200221_627.png


现在就很完美了。

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

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


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

再来看 np.ceil 取整函数:
Snip20200221_630.png


都是向上取整。

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

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

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

试一试:
Snip20200221_631.png


带入测试下:
Snip20200221_632.png


完美~

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

源代码: 18PaintFunc.zip (555 Bytes, 下载次数: 0, 售价: 5 鱼币)




如果有收获,别忘了评分


                               
登录/注册后可看大图


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

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-21 10:01:53 | 显示全部楼层
NumPy 也太好玩了吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-21 11:07:32 | 显示全部楼层
NumPy 也太好玩了吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 12:19:33 | 显示全部楼层
NumPy 也太好玩了吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 08:35:18 | 显示全部楼层
NumPy 也太好玩了吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 15:10:23 | 显示全部楼层
NumPy 也太好玩了吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-24 14:52:41 | 显示全部楼层
NumPy 也太好玩了吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-22 17:03:00 | 显示全部楼层
NumPy 也太好玩了吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 08:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表