您的位置:

用Python绘制函数图像

介绍

Python是一种流行的编程语言,具有广泛的应用领域。其中之一就是绘制函数图像。Python提供了丰富的绘图工具包,使得绘制函数图像变得异常简单。

从Python画函数图像

在Python中绘制函数图像是一件非常简单的事情。Python提供了一个matplotlib的模块,这是一个功能强大的绘图工具包,它可以绘制线图、散点图、图形、柱状图、误差线图等。而展现函数图像需要用到的是线图(Line chart)。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y = np.sin(x)

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

这段代码绘制了一个正弦函数的图像。np.linspace(start, stop, num)函数生成了256个值,其中看起来最奇怪的是endpoint参数。因为np.linspace以包含start参数和stop参数,所以endpoint=True的时候,会生成包含stop参数的数组。如果它是False,那么它就不包含stop参数。

Python三维函数图像绘制

Python的可视化模块matplotlib还支持三维函数图像的绘制。绘制三维函数图像需要使用mplot3d模块中的Axes3D类。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

def f(x, y):
    return np.sin(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-4, 4, 50)
y = np.linspace(-4, 4, 50)

X, Y = np.meshgrid(x, y)
Z = f(X, Y)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot_surface(X, Y, Z)
plt.show()

这个函数绘制了x和y之间的距离与点(x,y)上的sin函数值的三维函数图像。

Python绘制函数图像代码

下面我们给出一些可以绘制函数图像的代码,以供参考。

Python爱心函数图像绘制

这是一个绘制爱心形状的代码。

import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(0, 2*np.pi, 1000)
a = 3
b = 9
h = 2 * (a**2 - b**2) / (3*a**2 + b**2) * b
x = h + (b*np.cos(t) - h) * np.cos(t)
y = (b*np.cos(t) - h) * np.sin(t)

plt.plot(x, y)
plt.axis('equal')
plt.title('Love Heart')
plt.show()

Python绘制二元函数图像

下面的代码绘制了二元函数z = sin(x)cos(y)的图像。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-np.pi, np.pi, 100)
y = np.linspace(-np.pi, np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot_surface(X, Y, Z)
plt.show()

如何用Python绘制函数图像

了解了以上代码之后,如何用Python绘制任意函数图像呢?实际上,Python可以绘制各种曲线和图像,这就需要掌握numpy和matplotlib这两个模块。

下面我们以一个常见的二次函数y=x^2为例,来演示如何用Python绘制函数图像。

import numpy as np
import matplotlib.pyplot as plt

# 绘制y=x^2的曲线
x = np.linspace(-1, 1, 50)
y = x ** 2

# 绘制曲线
plt.plot(x, y, label='y=x^2')

# 添加图例
plt.legend()

# 显示图像
plt.show()

Python绘制三次函数图像

如何用Python绘制三次函数曲线呢?这里我们以y=x^3为例,展示如何用Python绘制三次函数曲线。

import numpy as np
import matplotlib.pyplot as plt

# 绘制y=x^3的曲线
x = np.linspace(-1, 1, 50)
y = x ** 3

# 绘制曲线
plt.plot(x, y, label='y=x^3')

# 添加图例
plt.legend()

# 显示图像
plt.show()

Python绘制自定义函数图像

上面的绘图代码都是基于数学公式的,而当我们有自己的函数公式时,也可以用Python代码来绘制出相应的函数图像。下面我们通过一个自定义函数f(x)=3sin(x)+x^2/5来演示如何用Python绘制自定义函数f(x)的图像。

import numpy as np
import matplotlib.pyplot as plt

# 定义自定义函数f(x)
def f(x):
    return 3 * np.sin(x) + x ** 2 / 5

# 绘制函数曲线
x = np.linspace(-10, 10, 100)
y = f(x)
plt.plot(x, y)

# 添加图例
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend(['y=f(x)'])

# 显示图像
plt.show()

Python画分段函数图像

分段函数是指一个函数在不同区间有不同的函数表达式。Python可以通过if语句判断x所处的区间,然后根据不同区间的表达式来计算y的值,从而绘制分段函数曲线。下面展示一个分段函数的代码。

import matplotlib.pyplot as plt
import numpy as np

# 定义分段函数
def f(x):
    if x < -3:
        y = 2 * x + 6
    elif x < 0:
        y = (x + 2) ** 2
    elif x < 3:
        y = np.sin(x / 2)
    else:
        y = x ** 2 / 5

    return y

# 绘制分段函数
x = np.linspace(-5, 5, 100)
y = [f(i) for i in x]

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

总结

Python是一种功能强大的编程语言,绘制函数图像是它的强项之一。通过numpy和matplotlib这两个模块,我们可以轻松地绘制各种不同的函数曲线,如正弦函数、余弦函数、爱心形等等。无论你是初学者或经验丰富的Python开发人员,只要掌握了相关的知识,就可以轻松地实现各种复杂的函数图像。希望本篇文章可以对你有所帮助。