网站首页 > 基础教程 正文
使用Matplotlib的默认画板,画出的函数图像真的太丑了。
比如,画直线、抛物线、指数函数的效果,是这样的、这样的和这样的:
而我们想画出的效果,是这样的、这样的,还有这样的:
今天就给大家分享,如何使用python,绘制美观的数学坐标系与函数图像。
1.坐标系的绘制
为了绘制数学中的坐标轴,需要使用axis-artist库。
定义draw_clear_board函数,用于绘制一个干净的坐标系:
函数传入left、right、down和up,分别表示坐标轴的左、右、下、上四个边界:
在函数中,首先创建一个画板board和一个坐标轴axis。
然后将坐标轴添加到画板中,并设置坐标轴的刻度,另外还要隐藏原来画板上的坐标轴。
接着定义x轴的显示样式。这里使用new_floating函数,创建一个新的悬浮坐标。
使用set_line_style,设置坐标轴的样式,也就是在x轴的末端绘制一个箭头。
使用set_direction,设置x轴的刻度方向。"top"表示x轴的刻度朝上。
使用set_xlim设置x轴的显示范围。其中left和right分别表示x轴的最左端和最右端。
按照同样的方式,设置y轴的样式。
接着在main函数中,设置left和right两个变量,表示坐标轴的最左端和最右端。调用draw_clear_board函数,绘制一个-8到8的坐标系。
2.直线的绘制
下面是直线的绘制代码。
设置函数draw_linear_function绘制一元一次函数。
函数传入直线的斜率k和截距b,left和right为自变量x的取值范围。
在函数中,使用numpy的lin-space,在left和right之间,构造出100个相同间距的浮点数,保存至x。
然后计算函数值y。
调用plot,绘制函数的图像:
在main函数中,绘制三条直线,三条直线的斜率分别为正、负和0:
接着运行程序,会得到三条不同颜色的直线。
3.其他函数图像的绘制
编写绘制抛物线、幂函数、指数函数和对数函数的代码如下:
绘制这些不同的函数,逻辑上和绘制直线是一样的,只是函数计算的方式不同。
例如,一元一次函数,是根据k和b计算直线,而二次函数是根据a、b、c计算抛物线。
幂函数、指数函数、对数函数,也分别有相应的计算方法,分别是计算x的a次方、a的x次方、以a为底,x的对数。
在main函数中,完成直线的绘制后,绘制两条抛物线,它们的开口分别是向上和向下:
绘制前,需要重新设置画板和绘制坐标轴,这里通过draw_clear_board实现:
接着要绘制幂函数、指数函数和对数函数:
为了不让函数值的范围过大,我们要重新调整自变量x的取值范围。
也就是将坐标轴横轴的最左端和最右端,从-8到8调整到-2到2。
这样函数图像会看起来更合适。
具体来说,绘制x的平方和x的3次方,两个幂函数:
2的x次方,3的x次方,两个指数函数:
最后是以2为底和以10为底,两个对数函数:
特别要说明的是,对数函数的自变量取值范围是大于0的,也就是传入的left,不能小于等于0。
我们可以设置一个非常小的数字,这里取的是0.0001。
那么到这里,使用python,绘制美观的数学坐标系与函数图像就讲完了,感谢大家的观看,我们下节课再会。
- 上一篇: 数据分析-对数回归分析Python
- 下一篇: php 301 302重定向实现代码
猜你喜欢
- 2024-11-26 数据分析-对数回归分析Python
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)