绘制三角函数图:如何将数学之美可视化(以 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)。你会对这些图形有更好的感觉,而不仅仅是在脑海中思考!快来试试吧!








