MATLAB - 二维线图
MATLAB - 现代二维线图
Section titled “MATLAB - 现代二维线图”二维线图是 MATLAB 中最基本、最强大的数据可视化工具之一。它通常通过在笛卡尔坐标系上绘制数据点并用线连接它们来探索两个变量之间的关系。掌握绘图对于数据分析、报告科学结果和调试算法至关重要。
plot 函数
Section titled “plot 函数”用于创建二维图的核心函数是 plot。虽然它有多种语法,但现代 MATLAB 编程强调使用名称-值对进行定制,这种方法更具可读性和灵活性。
% 1. 基本绘图plot(X, Y)
% 2. 带线条属性的绘图(经典简写)plot(X, Y, LineSpec)
% 3. 带名称-值对的绘图(现代且推荐)plot(X, Y, 'PropertyName', PropertyValue, ...)
% 4. 一次绘制多条线plot(X1, Y1, X2, Y2, ...)plot(X, Y):创建向量Y中的数据与向量X中对应值的二维线图。X和Y必须具有相同数量的元素。plot(X, Y, LineSpec):一种较旧但仍常见的简写,用于指定线条样式、标记符号和颜色。例如,'--or'指定了一条虚线 (--) 红色 (r) 的线,带有圆形 (o) 标记。plot(X, Y, 'PropertyName', PropertyValue):推荐的现代方法。它更明确、更具可读性。您可以设置数十个属性,例如'LineWidth'、'Color'、'Marker'、'MarkerSize'等。这种方法更加灵活和强大。
示例 1:完整、注释良好的绘图
Section titled “示例 1:完整、注释良好的绘图”一个好的绘图不仅仅是一条线;它有标签、标题,并且易于阅读。我们来绘制一个正弦波并正确地对其进行注释。
% 1. 准备数据x = linspace(0, 2*pi, 200); % 从 0 到 2*pi 创建 200 个点,用于生成平滑曲线y = sin(x);
% 2. 创建绘图figure; % 创建一个新的图形窗口,避免覆盖现有图形plot(x, y, 'LineWidth', 2); % 使用更粗的线条以获得更好的可见性
% 3. 注释绘图(对交流至关重要)title('Sine Wave from 0 to 2π');xlabel('Angle [rad]');ylabel('Amplitude');grid on; % 添加网格以便于阅读axis([0 2*pi -1.2 1.2]); % 设置轴限制以获得整洁的外观当您运行此代码时,将出现一个新的图形窗口。它将显示一个在 -1 和 1 之间振荡的平滑蓝色正弦波。该图将具有标题、标记的 x 轴和 y 轴以及背景网格。
示例 2:绘制多条线并使用图例
Section titled “示例 2:绘制多条线并使用图例”为了比较不同的数据集,您通常需要将它们绘制在相同的坐标轴上。hold on 命令对此至关重要。
% 1. 为两个函数准备数据x = linspace(0, 2*pi, 100);y1 = sin(x);y2 = cos(x);
% 2. 绘制第一条线figure;plot(x, y1, 'DisplayName', 'sin(x)', 'Color', 'blue', 'LineWidth', 2);
hold on; % 告诉 MATLAB 将后续绘图添加到同一坐标轴
% 3. 绘制第二条线plot(x, y2, 'DisplayName', 'cos(x)', 'Color', 'red', 'LineStyle', '--', 'LineWidth', 2);
hold off; % 释放坐标轴的 hold
% 4. 添加最终注释title('Sine and Cosine Functions');xlabel('Angle [rad]');ylabel('Amplitude');grid on;legend('show'); % 使用 'DisplayName' 属性显示图例此脚本生成一个包含两条曲线的图:一条表示正弦函数的实心蓝色线和一条表示余弦函数的虚线红色线。图例会显示,正确识别哪条线对应哪个函数。
示例 3:从实验数据创建散点图
Section titled “示例 3:从实验数据创建散点图”有时您希望显示单个数据点而不连接线。这被称为散点图,非常适合实验数据。
% 模拟一些带噪声的实验数据x_data = 1:10;y_data = 2*x_data + 1 + randn(size(x_data)); % y = 2x + 1,带有一些噪声
% 使用标记创建散点图,不带连接线figure;plot(x_data, y_data, 'o', ... 'MarkerFaceColor', 'g', ... % 用绿色填充标记 'MarkerEdgeColor', 'k', ... % 标记的黑色边缘 'MarkerSize', 8); % 使标记更大
% 注释绘图title('Noisy Experimental Data');xlabel('Measurement ID');ylabel('Measured Value');grid on;这将生成一个显示十个圆形标记的图,标记具有绿色填充和黑色边缘。这些点大致遵循一条向上倾斜的线,但带有随机变化,代表噪声。
- 始终标记坐标轴: 没有标签的图是毫无意义的。
- 使用
figure: 使用figure开始一个新的绘图,以避免意外覆盖之前的绘图。 - 优先考虑可读性: 使用名称-值对(如
'LineWidth', 2)来提高清晰度,而不是使用晦涩的简写形式(如'--r')。未来的您会感谢自己。 - 保存您的工作: 使用
saveas(gcf, 'myPlot.png')或更现代的exportgraphics(gca, 'myPlot.pdf')来保存您的绘图,以用于报告和演示。