在 MATLAB 中,plot 函数是最常用的绘图函数之一,用于生成二维图形。它能帮助我们以直观的方式展示数据。plot 函数的基本用途是将一组数据(通常是 xy 坐标)绘制成图形。

下面是对 plot 函数的详细解析:

1. 基本语法

(1) 绘制简单的 x-y 曲线

plot(x, y)
  • x: 自变量数据(通常是横坐标)。
  • y: 因变量数据(通常是纵坐标)。

例如,绘制 y = x^2 的曲线:

x = -10:0.1:10; % 定义 x 的范围
y = x.^2;       % 计算 y = x^2
plot(x, y)      % 绘制曲线

(2) 自定义线条样式

plot(x, y, 'style')

plot 函数中,style 用于指定图线的颜色、线型和标记。常见的 style 参数如下:

  • 颜色:
    • 'r': 红色
    • 'g': 绿色
    • 'b': 蓝色
    • 'k': 黑色
    • 'm': 品红
    • 'c': 青色
    • 'y': 黄色
  • 线型:
    • '-': 实线
    • ':': 点线
    • '-.': 虚线点线
    • '--': 虚线
  • 标记(用于显示数据点):
    • 'o': 圆形标记
    • '*': 星形标记
    • '+': 十字形标记
    • 'x': 叉形标记
    • '.': 小圆点标记

例如,绘制红色的虚线带圆点:

plot(x, y, 'r--o')   % 红色虚线带圆点

2. 多条数据曲线

在一个图中绘制多条曲线,可以通过在 plot 函数中输入多个数据对来实现:

plot(x1, y1, 'r', x2, y2, 'b')

这将同时绘制两条曲线,一条为红色,一条为蓝色。

例如,绘制 y = x^2y = x^3

x = -10:0.1:10;
y1 = x.^2;
y2 = x.^3;
plot(x, y1, 'r', x, y2, 'b')

3. 添加图例

图例用来标注不同的曲线,以便区分。使用 legend 函数添加图例:

plot(x, y1, 'r', x, y2, 'b')
legend('y = x^2', 'y = x^3')

4. 标题、坐标轴标签和网格

  • 添加标题title('My Plot Title')
  • 添加坐标轴标签xlabel('X-axis Label') ylabel('Y-axis Label')
  • 显示网格grid on

例如,完整的代码如下:

x = -10:0.1:10;
y1 = x.^2;
y2 = x.^3;
plot(x, y1, 'r', x, y2, 'b')
title('Plot of y = x^2 and y = x^3')
xlabel('X Values')
ylabel('Y Values')
legend('y = x^2', 'y = x^3')
grid on

5. 设置坐标轴范围

使用 axis 命令设置坐标轴的范围。例如,设置 x 坐标轴为 [0, 5]y 坐标轴为 [0, 100]

axis([0 5 0 100])

6. 绘制散点图

虽然 plot 通常用于绘制连续曲线,但它也可以用于绘制散点图,只需要使用 'o' 标记:

x = 1:10;
y = rand(1, 10);  % 随机生成10个数
plot(x, y, 'ro')  % 红色圆形标记的散点图

7. 子图(Subplots)

使用 subplot 函数可以在同一窗口中绘制多个子图:

subplot(2, 1, 1)   % 在 2 行 1 列的位置 1 绘制
plot(x, y1)
title('y = x^2')

subplot(2, 1, 2)   % 在 2 行 1 列的位置 2 绘制
plot(x, y2)
title('y = x^3')

8. 自定义线宽和标记大小

你可以通过设置 'LineWidth''MarkerSize' 来自定义线条宽度和标记大小:

plot(x, y, 'r-', 'LineWidth', 2, 'Marker', 'o', 'MarkerSize', 8)

9. 使用 hold 保持当前图形

hold on 使得后续的图形不会覆盖当前图形,而是叠加绘制。hold off 则恢复默认行为,即每次绘制新图形时都会覆盖原图形。

plot(x, y1, 'r')
hold on
plot(x, y2, 'b')
hold off

10. 保存图形

保存图形为图像文件(如 PNG、JPEG、SVG 等):

saveas(gcf, 'myplot.png')

11. 示例:绘制多个数据集

下面是一个完整的例子,展示如何使用 plot 绘制多个数据集并添加标题、坐标轴标签、图例等:

x = -10:0.1:10;
y1 = x.^2;
y2 = x.^3;
y3 = x.^4;

plot(x, y1, 'r', x, y2, 'b', x, y3, 'g--')
title('Plot of y = x^2, y = x^3, and y = x^4')
xlabel('X Values')
ylabel('Y Values')
legend('y = x^2', 'y = x^3', 'y = x^4')
grid on

总结

  • plot 是绘制二维图形的基本函数,支持灵活的参数配置,能够实现多种效果。
  • 通过指定不同的颜色、线型、标记,可以轻松定制图形样式。
  • 结合标题、坐标轴标签、图例等,可以使图形更加易于理解。
  • 利用 MATLAB 的子图、网格、坐标轴范围等功能,可以帮助你绘制更复杂的图形。