绘图
线图
二维线图
使用 plot 函数创建二维线图。例如,绘制从 0 到 2π 之间的正弦函数值。
% 生成线性等间距点,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 或关闭窗口之前,当前图窗窗口中会显示所有绘图。
% 生成线性等间距点,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函数页
x = linspace(0,2*pi,50);
y = sin(x);
plot(x,y,':')
hold on
y2 = cos(x);
plot(x,y2,'r:*')
hold off更改线条对象的属性
通过更改用来创建绘图的 Line 对象的属性,还可以自定义绘图的外观。
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 属性。
% 生成线性等间距点,-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;更改坐标轴范围
创建一个线图。使用 xlim 和 ylim 函数指定坐标轴范围。对于三维绘图,请使用 zlim 函数。将 [min max] 形式的二元素向量传递给函数。
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 选择。对于自动计算的最小值或最小值范围,分别使用 -inf 或 inf 来表示。
[x, y, z] = peaks;
surf(x, y, z);
xlabel('x-axis');
ylabel('y-axis');
xlim([-inf, 0]);
ylim([-1, inf]);还原为默认范围
[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 对象的 XDir 和 YDir 属性,可控制 x 轴和 y 轴值递增的方向。这些属性可以设置为 'reverse'或 'normal'(默认值)。使用 gca 命令可访问 Axes 对象。
stem(1:10);
ax = gca;
ax.XDir = 'reverse';
ax.YDir = 'reverse';显示通过原点的轴线
默认情况下,x 轴和 y 轴沿坐标区的外边界显示。通过设置 Axes 对象的 XAxisLocation 和 YAxisLocation 属性来更改轴线位置,以使轴线在原点 (0,0) 处交叉。将 XAxisLocation 设置为 'top'、'bottom' 或 'origin'。将 YAxisLocation 设置为 'left'、'right' 或 'origin'。这些属性仅适用于二维视图中的坐标区。
x = linspace(-5, 5);
y = sin(x);
plot(x, y);
ax = gca;
% 使得原点处于图像中间
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
% 删除坐标外边框
box off
秋叶依剑