龙空技术网

用Python画统计图-002:用Python画函数图像

数据艺术家 265

前言:

此时姐妹们对“python函数图像”都比较关心,小伙伴们都想要学习一些“python函数图像”的相关文章。那么小编也在网摘上网罗了一些关于“python函数图像””的相关资讯,希望姐妹们能喜欢,我们快快来了解一下吧!

通过图像可以直观地学习函数变化、分布等规律,在学习函数、概率分布等方面效果显著。下面我们尝试用Python的2D绘图库matplotlib来绘制函数图像。

下面我们来实现一个简单的函数:

首先,调用matplotlib库和numpy库

import matplotlib.pyplot as pyplotimport numpy

然后,确定绘制图像的定义域范围(例如我们使用[-10,10]区间),并使用numpy的linspace方法在目标范围内等距地选取200个自变量。在这里选取的点数越多,函数绘制得会越精细。

x=numpy.linspace(-10, 10, 200)

接着,计算所有自变量对应的因变量。

y=[i**2 for i in x]

最后,我们用pyplot绘制图像并显示它。当使用plot方法绘制函数图像时,pyplot会自动将所有相邻的点之间用直线连接。

pyplot.plot(x,y)pyplot.show()

此时的绘图结果如下:

【完整代码】如下:import matplotlib.pyplot as pyplotimport numpyx=numpy.linspace(-10,10,200)y=[i**2 for i in x]pyplot.plot(x,y)pyplot.show()

下面我们来对上面的代码做一些简单的优化:

1.为方便调用,将绘制图像的代码放到一个函数里(为避免表意不明,下文称为draw_function函数),并把绘制范围、选取点的密度作为draw_function函数的参数,然后调用该函数。

def draw_function (a,b,density): x=numpy.linspace(a,b,density) y=[i**2 for i in x] pyplot.plot(x,y)	pyplot.show()draw_function(-10,10,200)

2.为方便替换图像函数的映射方法,因此将映射方式放到另一函数里,并把该映射方法作为draw_function函数的参数,然后调用该函数。

def draw_function(a,b,density,f): x=numpy.linspace(a,b,density) y=[f(i) for i in x] pyplot.plot(x,y) pyplot.show()def f_square(x): return x**2draw_function(-10,10,200,f_square)

至此,这个利用matplotlib绘制函数图像的小模块就基本完成了。

【完整代码】如下:import matplotlib.pyplot as pyplotimport numpy def draw_function(a,b,density,f): x=numpy.linspace(a,b,density) y=[f(i) for i in x] pyplot.plot(x,y) pyplot.show() def f_square(x): return x**2 draw_function(-10,10,200,f_square)

Jupyter产生的Bug处理

如果使用Jupyter,在第一次运行绘制模块时会显示:

<Figure size 640x480 with 1 Axes>

在再次运行绘制模块后才会正常显示图像。此时需在代码头部添加如下内容:

%matplotlib inline

其他内容

运用为图表添加标题、修改颜色,以及matplotlib绘制其他函数图像,绘制散点图、直方图等其他图表的内容会在日后逐步更新。

作者:长行

标签: #python函数图像