Skip to content

绘图

线图

二维线图

使用 plot 函数创建二维线图。例如,绘制从 0 到 2π 之间的正弦函数值。

matlab
% 生成线性等间距点,0-2π,生成1000个
x = linspace(0, 2 * pi, 1000);
y = sin(x);
plot(x, y);

% 添加坐标轴和标题
xlabel('x');
ylabel('sin(x)');
title('sin(x)的函数图像');

绘制多个线条

默认情况下,MATLAB 会在执行每个绘图命令之前清空图窗。使用 figure 命令打开一个新的图窗窗口。可以使用 hold on 命令绘制多个线条。在使用 hold off 或关闭窗口之前,当前图窗窗口中会显示所有绘图。

matlab
% 生成线性等间距点,0-2π,生成1000个
x = linspace(0, 2 * pi, 1000);
% 绘制第一个图形sinx
y1 = sin(x);
plot(x, y1);

% 使用hold on 保证第一个图像窗口不会被清除掉
hold on

% 绘制第二个图形cosx
y2 = cos(x);
plot(x, y2);

hold off

更改线条外观

通过在调用 plot 函数时包含可选的线条设定,可以更改线条颜色、线型或添加标记。例如:

  • : 绘制点线。

  • r:绘制红色点线。

  • r:* 绘制带有星号标记的红色点线。

  • * 绘制不带线条的星号标记。

更多的参数请参考官方plot函数页

matlab
x = linspace(0,2*pi,50);
y = sin(x);
plot(x,y,':')

hold on 
y2 = cos(x);
plot(x,y2,'r:*')
hold off

更改线条对象的属性

通过更改用来创建绘图的 Line 对象的属性,还可以自定义绘图的外观。

matlab
x = linspace(0, 2 * pi, 25);
y = sin(x);
ln = plot(x, y);

% 线宽 2
ln.LineWidth = 2;
% 线条样式
ln.LineStyle = ':';
% 线条颜色RGB
ln.Color = [0, 0.5, 0.5];
% 线条标记圆形
ln.Marker = 'o';
% 圆形标记边缘颜色蓝色
ln.MarkerEdgeColor = 'b';

更多设置请访问MATLAB官方文档的Line属性页

为图添加标题和轴标签

MATLAB是支持LaTeX标记的,所以在命名标题的时候,如果遇到数学符号,希腊字母,可以使用LaTeX。

使用 legend 函数向图中添加标识每个数据集的图例。按照绘制线条的顺序指定图例说明。(可选)使用八个基本或斜角方位之一指定图例位置,在本例中为 'southwest'。

Axes 对象具有可用来自定义坐标区外观的属性。例如,FontSize 属性控制标题、标签和图例的字体大小。

使用 gca 函数访问当前 Axes 对象。然后使用圆点表示法设置 FontSize 属性。

matlab
% 生成线性等间距点,-2π-2π,生成1000个
x = linspace(-2 * pi, 2 * pi, 1000);
y1 = sin(x);
y2 = cos(x);

plot(x, y1, x, y2);

title('Line Plot of Sine and Cosine Between -2\pi and 2\pi');
legend({'y = sin(x)', 'y = cos(x)'}, 'Location', 'southwest');
ax = gca;
ax.FontSize = 13;

更改坐标轴范围

创建一个线图。使用 xlimylim 函数指定坐标轴范围。对于三维绘图,请使用 zlim 函数。将 [min max] 形式的二元素向量传递给函数。

matlab
x = linspace(-10, 10, 200);
y = sin(4 * x) ./ exp(x);
plot(x, y);
xlim([0, 10]);
ylim([-0.4, 0.8])

使用半自动坐标轴范围

x 轴范围最大值设为 0,y 轴范围最小值设为 -1。其他范围则由 MATLAB 选择。对于自动计算的最小值或最小值范围,分别使用 -infinf 来表示。

matlab
[x, y, z] = peaks;

surf(x, y, z);
xlabel('x-axis');
ylabel('y-axis');
xlim([-inf, 0]);
ylim([-1, inf]);

还原为默认范围

matlab
[x, y, z] = peaks;

mesh(x, y, z);
xlabel('x-axis');
ylabel('y-axis');
xlim([-2, 2]);
ylim([-2, 2]);
zlim([-5, 5]);

% 还原默认范围
xlim auto
ylim auto
zlim auto

反转坐标轴的方向

通过设置 Axes 对象的 XDirYDir 属性,可控制 x 轴和 y 轴值递增的方向。这些属性可以设置为 'reverse''normal'(默认值)。使用 gca 命令可访问 Axes 对象。

matlab
stem(1:10);
ax = gca;
ax.XDir = 'reverse';
ax.YDir = 'reverse';

显示通过原点的轴线

默认情况下,x 轴和 y 轴沿坐标区的外边界显示。通过设置 Axes 对象的 XAxisLocationYAxisLocation 属性来更改轴线位置,以使轴线在原点 (0,0) 处交叉。将 XAxisLocation 设置为 'top''bottom''origin'。将 YAxisLocation 设置为 'left''right''origin'。这些属性仅适用于二维视图中的坐标区。

matlab
x = linspace(-5, 5);
y = sin(x);
plot(x, y);

ax = gca;
% 使得原点处于图像中间
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';

% 删除坐标外边框
box off

指定坐标轴刻度值和标签

Released under the MIT License.