MATLAB - 图表格式化



为了使您的图表更具表现力,展现更多信息或使数据更容易理解,您可以执行以下操作:添加标题和标签,更改图表的坐标轴范围,并添加辅助线以帮助阅读图表。您还可以将不同的数据组放在同一张图中,方法是将所有数据显示在同一条线上,或在一张图中使用多条线。

图表的格式化可以通过以下方法实现:

  • 标签和注释
  • 坐标轴外观
  • 颜色图

标签和注释

这有助于在图表顶部添加标题,命名线条或在图表上添加注释以突出显示重要信息。您可以制作一个图例来命名图表上的不同部分,或者在图表上的数据点附近添加文字。此外,您还可以绘制诸如框、圆圈、箭头或线条之类的形状来指示图表的特定部分。

要处理标签和注释,您可以使用以下几种方法:

标签方法

序号 方法和描述
1

title

title(titletext) : 添加标题

2

subtitle

subtitle(txt) : 向图表添加副标题

3

sgtitle

sgtitle(txt) : 向图表网格添加标题

4

xlabel

xlabel(txt) : 向 x 轴添加标签

5

ylabel

ylabel(txt) : 向 y 轴添加标签

6

zlabel

zlabel(txt) : 向 z 轴添加标签

7

fontname

fontname(fname) : 设置标签使用的字体名称。

8

fontsize

fontsize(size,units) : 设置字体大小

9

legend

legend() : 图例创建一个键,其中包含图表上每一组数据的清晰名称。

注释方法

序号 方法和描述
1

text

text(x,y,txt) : text 函数在图表的一个或多个点上放置文本。如果您只在一个点上添加文本,请对 x 和 y 使用单个数字。如果您要在多个点上添加文本,请使用具有相同项目数的 x 和 y 列表。

2

xline

xline(x) : x 值恒定的垂直线。

3

yline

yline(y) : y 值恒定的水平线。

4

xregion

xregion(x1,x2) : x 坐标之间的 1-D 填充区域

5

yregion

yregion(y1,y2): y 坐标之间的 1-D 填充区域

6

annotation

annotation(lineType,x,y) : annotation 函数创建一个连接图表上两点的线或箭头。选择您想要的线类型,例如 'line'、'arrow'、'doublearrow' 或 'textarrow'。使用 [x_begin x_end] 和 [y_begin y_end] 对来指定线或箭头在图表上的起始和结束位置。

标签示例

让我们看几个关于如何在 Matlab 中使用上述方法格式化图表的示例。

示例 1

让我们向二维图添加标题和副标题

plot([0 5],[1 5])
title('Straight Line')
subtitle('Slope = 5, y-Intercept = 1')

在 Matlab 命令窗口中执行相同的操作,输出为:

straight line slope

示例 2

除了标题,还会添加 x 轴标签和 y 轴标签,如下所示

plot([0 5],[1 5])
title('Straight Line')
subtitle('Slope = 5, y-Intercept = 1')
xlabel('X scale')
ylabel('Y scale')

在 Matlab 命令窗口中执行后,输出为:

straightline x scale

示例 3

在这个例子中,我们将添加图例,并更改图例、标题和标签的字体名称和大小。

plot([0 1; 1 2])
title('Straight Line')
subtitle('Slope = 5, y-Intercept = 1')
xlabel('X scale')
ylabel('Y scale')
legend("Blue Line","Red Line")
fontname("Comic Sans MS")
fontsize(16,"points")
straightline y scale

注释示例

让我们看几个关于如何在 Matlab 中使用上述方法格式化图表的示例。

示例 1

在二维线图上使用 text()。

plot(1:20)
str = {'Line plot','from 1 to 20'};
text(2,7,str)

在 Matlab 命令窗口中执行相同的操作,输出为:

line plot 2d graph

示例 2

使用 xline() 和 yline()

plot(1:20)
xline(3);
yline(2);

在 Matlab 命令窗口中执行代码后,输出为:

xline yline

示例 3

x = -10:0.25:10;
y = x.^4;
plot(x,y)
xregion(-2,3)

在 Matlab 命令窗口中执行相同的操作,输出为:

xregion yregion

现在我们将使用 yregion,如下所示:

x = -10:0.25:10;
y = x.^4;
plot(x,y)
yregion(1000,3000)

执行后,输出为:

yregion

现在我们将使用 yregion,如下所示:

x = -10:0.25:10;
y = x.^4;
plot(x,y)
yregion(1000,3000)

执行后,输出为:

xregion

示例 4

在这个例子中,让我们添加一个文本箭头注释,文本为 'y = x',从点 (0.3, 0.6) 开始,到点 (0.5, 0.5) 结束。

plot(1:10)
x = [0.3 0.5];
y = [0.6 0.5];
annotation('textarrow',x,y,'String','y = x ')

annotation('textarrow', x, y, 'String', 'y = x'): 这行代码在图表上创建一个文本箭头注释。它指定注释应该是一个文本箭头,使用前面提供的 x 和 y 坐标。与箭头关联的文本为 'y = x'。

textarrow

坐标轴外观

您可以通过延长或缩短坐标轴、更改标签或添加辅助线来更改图表坐标轴上线条和数字的外观。您还可以将不同的图表叠加在一起或并排放置,甚至可以在一侧使用两组数字。

以下是一些可以帮助格式化坐标轴外观的方法。

序号 方法和描述
1

xlim()

xlim(limits) : 控制当前图表或图形中 x 轴的范围。

2

ylim()

ylim(limits) : 控制当前图表或图形中 y 轴的范围。

3

xscale()

xscale(scale) : 更改当前图表中 x 轴的显示方式——可以是直线或对数方式。

4 yscale()

yscale(scale) : 更改当前图表中 y 轴的显示方式——可以是直线或对数方式。

5

box on

使用“box on”可以显示当前图表的轮廓,方法是启用其 Box 功能。对于 GeographicAxes 对象,这是默认设置。

6

xticks()

xticks(ticks): 将刻度线放置在您选择的 x 轴上的特定位置。使用递增数字列表,例如 [0 2 4 6],来指定您想要放置刻度线的位置。这适用于当前图表。

7

yticks()

yticks(ticks):在您选择的特定位置放置 y 轴上的刻度标记。使用递增数字列表,例如 [0 2 4 6],来显示您想要这些标记的位置。这适用于当前图形。

8

xticklabels()

xticklabels(labels):为当前图形中 x 轴上的刻度标记分配新的标签。您可以使用一组单词,例如 {'January','February','March'} 来替换默认标签。请记住,一旦您设置了这些标签,对图形的任何更改都不会自动更新它们。

9

yticklabels()

yticklabels(labels):为当前图形中 y 轴上的刻度标记分配新的标签。您可以使用一组单词,例如 {'January','February','March'} 来替换默认标签。请记住,一旦您设置了这些标签,对图形的任何更改都不会自动更新它们。

让我们看几个例子,演示上述方法的工作原理。

示例 1:使用 xlim() 和 ylim()

在下面的示例中,我们有以下代码:

x = linspace(0,20);
y = sin(x);
plot(x,y)
xlim([0 15])

x 轴指定了从 0 到 20 的 linspace。使用 xlim() 将把 x 轴限制在 0 到 15 之间。

在 Matlab 命令窗口中执行代码后,输出为:

xlim

现在让我们看看如何使用 ylim() 来限制绘图时的 y 轴。

我们的代码如下:

x = linspace(0,20);
y = sin(x);
plot(x,y)
ylim([-5 5])

我们使用与示例中相同的代码来显示 x 轴的限制,但这里不是限制 x 轴,而是如上所示限制 y 轴。

当您在 MATLAB 命令窗口中执行代码时,输出如下:

ylim

示例 2:使用 xscale() 和 yscale()

让我们首先了解如何使用 xscale() 方法,然后是如何使用 yscale() 方法。

以下代码显示了如何使用 xscale():

x = linspace(0.1, 100, 100);
y = log(x);
plot(x, y);
xscale('log');

在这个示例中,第一个绘图使用线性 x 轴比例尺,第二个绘图使用对数 x 轴比例尺。xscale('log') 函数用于将 x 轴比例尺设置为对数。

在 Matlab 命令窗口中执行相同的操作,输出为:

x-axis scale

现在让我们了解如何使用 yscale() 方法。我们的代码如下:

x = linspace(0.1, 100, 100);
y = log(x);
plot(x, y);
yscale('log');

在这个示例中,yscale('log') 语句将 y 轴比例尺设置为对数。

在 MATLAB 命令窗口中执行代码后,输出为:

y axis scale

示例 3:使用 box on

以下代码显示了如何使用 box on,以便您获得围绕 3D 绘图的框的显示。

t = linspace(0, 4*pi, 100);
x = cos(t);
y = sin(t);
z = t;
plot3(x, y, z, 'LineWidth', 2);
box on;

在 Matlab 命令窗口中执行相同的操作,输出为:

box on

示例 4:使用 xticks() 和 yticks()

让我们首先了解如何使用 xticks() 方法。其代码如下所示:

x = linspace(0, 10, 100);
y = sin(x);
plot(x, y);
xticks([2 4 6 8]);

在这个示例中,xticks([2 4 6 8]) 命令将 x 轴刻度值设置为 2、4、6 和 8。您可以将向量 [2 4 6 8] 修改为任何与您希望在 x 轴上显示刻度标记的位置匹配的递增值。执行此代码后,您将看到一个绘图,其刻度标记专门位于 x 轴上的 2、4、6 和 8 值处。

在 Matlab 命令窗口中执行相同的操作,输出为:

xticks

现在让我们看看 yticks() 的示例,如下所示:

x = linspace(0, 10, 100);
y = sin(x);
plot(x, y);
yticks([-0.5 0 0.5 1]);

在这个示例中,yticks([-1 -0.5 0 0.5 1]) 命令将 y 轴刻度值设置为 -1、-0.5、0、0.5 和 1。您可以将向量 [-1 -0.5 0 0.5 1] 修改为任何与您希望在 y 轴上显示刻度标记的位置匹配的递增或递减值。执行此代码后,您将看到一个绘图,其刻度标记专门位于 y 轴上的 -1、-0.5、0、0.5 和 1 值处。

在 MATLAB 命令窗口中执行代码后的输出为:

yticks

示例 5:使用 xticklabels() 和 yticklabels()

让我们看看如何使用 xticklabels() 的示例。其代码如下:

x = 1:5;
y = [4 7 1 9 5];
plot(x, y, 'o-');
xticklabels({'A', 'B', 'C', 'D', 'E'});

在这个示例中,xticklabels({'A', 'B', 'C', 'D', 'E'}) 命令将 x 轴刻度标签设置为 'A'、'B'、'C'、'D' 和 'E'。向量 x 表示沿 x 轴的刻度值,xticklabels 函数允许您为这些刻度分配自定义标签。

在 Matlab 命令窗口中执行相同的操作,输出为:

xticklabels

现在让我们了解如何使用 yticklabels(),如下面的代码所示:

x = 1:5;
y = [4 7 1 9 5];
plot(x, y, 'o-');
yticklabels({'One', 'Two', 'Three', 'Four', 'Five'});

在这个示例中,yticklabels({'One', 'Two', 'Three', 'Four', 'Five'}) 命令将 y 轴刻度标签设置为 'One'、'Two'、'Three'、'Four' 和 'Five'。向量 y 表示沿 y 轴的刻度值,yticklabels 函数允许您为这些刻度分配自定义标签。

yticklabels

颜色图

颜色图就像在不同的图片或图形中使用的颜色集合。颜色条显示颜色集中的颜色如何与您的信息匹配。颜色图由带有三个表示颜色的数字的行组成。颜色与您的数据之间的连接会根据您制作的图片或图形的类型而变化。

以下是一些可以帮助处理颜色的方法。

序号 方法和描述
1

colormap()

colormap(map) 将当前图形的颜色方案调整为由指定颜色图“map”定义的颜色方案。

2

colorbar()

colorbar(location) 在指定位置(例如 'northoutside')显示颜色条。

示例 1:使用 colormap()

mesh(peaks)
colormap('cool')

mesh(peaks) − 此命令使用“peaks”函数生成 3D 表面图。“peaks”函数通常用于测试和演示各种 MATLAB 绘图功能。

colormap('cool') − 创建网格图后,colormap 函数用于设置图的颜色方案。具体来说,它将颜色图设置为“cool”。'cool' 颜色图是 MATLAB 内置的颜色图,它从深蓝色平滑过渡到浅青色,从而创建了数据的视觉上吸引人的表示。

在 Matlab 命令窗口中执行后,输出为:

colormap

示例 2:使用 colorbar()

mesh(peaks)
colormap('cool')
colorbar('southoutside')

在上面的示例中,colorbar 函数向绘图添加了一个颜色条。参数 'southoutside' 指定颜色条位于绘图底部的外部。此颜色条提供了解释绘图中颜色的参考,指示颜色与数据值之间的对应关系。

执行后的输出如下:

colorbar
广告