绘制三角函数图:如何将数学之美可视化(以 Python 为特色)

在数学课上学习三角函数时,你有没有尝试过手绘图形?你可以粗略地画出来,但要画得漂亮却并不容易,对吧? 现在,你可以用 Python 来看看它们到底是什么样子的。

在本文章中,我们将向您展示如何使用 Python 轻松、准确地绘制 sin、cos 和 tan 函数的图形。我们将提供编码初学者也能遵循的分步指南,以及自定义图形的技巧。掌握这项技能将有助于你完成数学作业和数据可视化项目。

安装所需的程序库

首先,您需要安装必要的库。在终端运行以下命令哦,如果你不知道如何使用 VS 代码来运行 Python 源代码、 安装 VS CODE - Windows 请查看帖子并跟帖。

pip install numpy matplotlib

编写基本代码

以下是绘制 sin、cos 和 tan 函数图形的基本代码。

# 导入 numpy 和 matplotlib 库。
import numpy as np
import matplotlib.pyplot as plt

# 生成 1000 个从 -2π 到 2π 间隔均匀的 x 值。
x = np.linspace(-2 * np.pi, 2 * np.pi, 1000)

# 根据生成的 x 值计算 sin、cos 和 tan 函数值。
y_sin = np.sin(x)
y_cos = np.cos(x)
y_tan = np.tan(x)

1创建一个 Figure 对象来绘制 TP5T 图形,并设置其大小。
plt.figure(figsize=(12, 8))

绘制 # 三角函数图。
plt.plot(x, y_sin, label='sin(x)')
plt.plot(x, y_cos, label='cos(x)')
plt.plot(x, y_tan, label='tan(x)')
plt.legend()
plt.show()

如果我们用上面的代码绘制图形,结果如下。每个三角函数都没有正确标识,X 轴上的值也不是通常所见的(如 π)。

삼각함수 그래프 그리기

自定义图表

让我们为基本图形添加一些元素,使它看起来更美观:

# 导入 numpy 和 matplotlib 库。
import numpy as np
import matplotlib.pyplot as plt

# 生成 1000 个从 -2π 到 2π 间隔均匀的 x 值。
x = np.linspace(-2 * np.pi, 2 * np.pi, 1000)

# 根据生成的 x 值计算 sin、cos 和 tan 函数值。
y_sin = np.sin(x)
y_cos = np.cos(x)
y_tan = np.tan(x)

# 定义一个函数,以 π 为增量在 x 轴上显示刻度线。
def set_pi_ticks(ax):
    # 以 π/2 为间隔设置从 -2π 到 2π 的刻度线位置。
    ax.set_xticks(np.array(-2*np.pi, 2.1*np.pi, np.pi/2))
    # 设置每个刻度对应的标签。用 LaTeX 格式表示 π。
    ax.set_xticklabels([r'$-2\pi$', r'$-3\pi/2$', r'$-\pi$', r'$-\pi/2$', '0'、
                        r'$\pi/2$', r'$\pi$', r'$3\pi/2$', r'$2\pi$'])

设置 # 图形的大小(宽 12 英寸,高 8 英寸)。
plt.figure(figsize=(12, 8))

# 获取当前轴对象。
ax = plt.gca()

# 绘制 sin、cos 和 tan 函数的图形。每个函数都用不同的颜色绘制,您还可以指定图例中的名称。
plt.plot(x, y_sin, label='sin(x)')
plt.plot(x, y_cos, label='cos(x)')
plt.plot(x, y_tan, label='tan(x)')

为 # 图形设置标题。
plt.title('Trigonometric Functions')

# 为 x 轴和 y 轴设置标签。
plt.xlabel('x')
plt.ylabel('y')

# 以黑色实线绘制 x 轴(y=0)和 y 轴(x=0)。
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)

为 # 图形添加网格线。
plt.grid(True)

显示 # 图例。
plt.legend()

# 在 x 轴上显示以 π 为单位的刻度。
set_pi_ticks(ax)

将 # y 轴的范围限制在 -3 至 3 之间。
plt.ylim(-3, 3)

# 自动调整图形布局。
plt.tight_layout()

在屏幕上显示 # 图形。
plt.show()
삼각함수 그래프 그리기

绘制单个图表

通过在单独的子图中绘制每个函数,您可以看到更多细节:

# 导入 numpy 和 matplotlib 库。
import numpy as np
import matplotlib.pyplot as plt

# 生成 1000 个从 -2π 到 2π 间隔均匀的 x 值。
x = np.linspace(-2 * np.pi, 2 * np.pi, 1000)

# 根据生成的 x 值计算 sin、cos 和 tan 函数值。
y_sin = np.sin(x)
y_cos = np.cos(x)
y_tan = np.tan(x)

# 定义一个函数,以 π 为增量在 x 轴上显示刻度线。
def set_pi_ticks(ax):
    # 以 π/2 为间隔设置从 -2π 到 2π 的刻度线位置。
    ax.set_xticks(np.array(-2*np.pi, 2.1*np.pi, np.pi/2))
    # 设置每个刻度对应的标签。用 LaTeX 格式表示 π。
    ax.set_xticklabels([r'$-2\pi$', r'$-3\pi/2$', r'$-\pi$', r'$-\pi/2$', '0'、
                        r'$\pi/2$', r'$\pi$', r'$3\pi/2$', r'$2\pi$'])

# 设置整个图表的大小(宽 12 英寸,高 12 英寸)。
plt.figure(figsize=(12, 12))

# 绘制 sin 函数图(第一个子图)
ax1 = plt.subplot(3, 1, 1) # 在第 3 行第 1 列网格中的第一个位置创建子图。
plt.plot(x, y_sin, label='sin(x)')  # 绘制 sin 函数的图形。
plt.title('sin 函数') # 设置子绘图的标题。
plt.ylabel('sin(x)')  设置 # y 轴标签。
plt.grid(True) # 添加网格线。
plt.legend() # 显示图例。
set_pi_ticks(ax1) # 在 x 轴上显示以 π 为单位的刻度。

# 绘制 cos 函数图(第二个子图)
ax2 = plt.subplot(3, 1, 2) # 在第 3 行第 1 列网格的第二个位置创建子网格。
plt.plot(x, y_cos, label='cos(x)', color='orange') # 用橙色绘制 cos 函数的图形。
plt.title('cos 函数')
plt.ylabel('cos(x)')
plt.grid(True)
plt.legend()
set_pi_ticks(ax2)

# tan 函数的图形(第三个子绘图)
ax3 = plt.subplot(3, 1, 3) # 在第 3 行第 1 列网格的第三个位置创建子图。
plt.plot(x, y_tan, label='tan(x)', color='green') # 用绿色绘制 tan 函数的图形。
plt.title('tan 函数')
plt.xlabel('x') # 设置 x 轴标签(仅在底部子图中可见)。
plt.ylabel('tan(x)')
plt.ylim(-10, 10) # 将 y 轴的范围限制在 -10 至 10 之间(考虑到 tan 函数的发散性)。
plt.grid(True)
plt.legend()
set_pi_ticks(ax3)

自动调整 # 子图之间的间距。
plt.tight_layout()

在屏幕上显示 # 图形。
plt.show()
삼각함수 그래프 그리기

组织起来

在本篇文章中,我们已经了解了如何使用 Python 和 Matplotlib 轻松地将复杂的数学函数可视化。 应用这些技术将更容易理解和解释各种数学概念。

尝试绘制一些扩展函数的图形,如 sin(2x)。你会对这些图形有更好的感觉,而不仅仅是在脑海中思考!快来试试吧!

类似文章