使用python,绘制美观且标准的数学坐标系与函数图像

使用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,绘制美观的数学坐标系与函数图像就讲完了,感谢大家的观看,我们下节课再会。

相关文章

人工智能数学基础2:指数、方根及对数运算公式

一、指数公式二、方根运算在a、b大于0的情况下:三、对数运算2.1、对数的定义2.2、对数运算由上面的第一个公式可以得知:2.3、常用对数2.4、对数方程和不等式关于原文链接本文在CSDN的“老猿Py...

Python 数据分析——SciPy 线性代数-linalg

NumPy和SciPy都提供了线性代数函数库linalg,SciPy的线性代数库比NumPy更加全面。一、解线性方程组numpy.linalg.solve(A, b)和scipy.linalg.sol...

Python快速学习第一天!

第一天:Python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言一、运行Python:1、 在交互式环境下,直接输入Python进入Python编程环境[root@tanggao/]#...

Copilot上大分,仅数天,陶哲轩的估计验证工具卷到2.0!

机器之心报道编辑:杜伟、大盘鸡本周二,我们报道了菲尔兹奖得主陶哲轩的一个开源项目 —— 在大模型的协助下编写了一个概念验证软件工具,来验证涉及任意正参数的给定估计是否成立(在常数因子范围内)。在项目中...