matlab使用教程(60)—添加标题、标签、图例

1.为图添加标题和轴标签

        此示例说明如何使用 title xlabel ylabel 函数向图中添加标题和轴标签。它还说明如何通过更改字体大小来自定义坐标区文本的外观。

1.1创建简单的线图

        创建 x ,它是 100 个介于 -2 π 2 π 之间的线性间隔值。将 y1 y2 创建为 x 的正弦和余弦值。绘制两组数据。
x = linspace(-2*pi,2*pi,100);
y1 = sin(x);
y2 = cos(x);
figure
plot(x,y1,x,y2)

1.2添加标题

        使用 title 函数向图中添加标题。要显示希腊符号 π ,请使用 TeX 标记 \pi
title('Line Plot of Sine and Cosine Between -2\pi and 2\pi')

1.3 添加坐标轴标签

        使用 xlabel ylabel 函数向图中添加轴标签。
xlabel('-2\pi < x < 2\pi')
ylabel('Sine and Cosine Values')

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

1.4 更改字体大小

        Axes 对象具有可用来自定义坐标区外观的属性。例如, FontSize 属性控制标题、标签和图例的字体大小。
        使用 gca 函数访问当前 Axes 对象。然后使用圆点表示法设置 FontSize 属性。
ax = gca;
ax.FontSize = 13;

        如果matlab版本在R2022a 以上,您也可以使用 fontsize 函数更改坐标区文本的字体大小。

1.5 带有变量值的标题

        通过使用 num2str 函数将值转换为文本,可在标题文本中包含变量值。您可以使用类似的方法为轴标签或图例条目添加变量值。
        添加带有 sin( π )/2 值的标题。
k = sin(pi/2);
title(['sin(\pi/2) = ' num2str(k)])

2.添加图例

        图例是标记绘制在图上的数据序列的有用方法。下列示例说明如何创建图例并进行一些常见修改,例如更改位置、设置字体大小以及添加标题。您还可以创建具有多列的图例或为所绘制数据的子集创建图例。

2.1 创建简单的图例

        创建一个具有线图和散点图的图窗。为每个图添加具有说明的图例。将图例标签指定为 legend 函数的输入。
figure
x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)
hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off
legend('sin(x/2)','2016')

2.2 使用 DisplayName 指定标签

        您也可以使用 DisplayName 属性指定图例标签。调用绘图函数时,将 DisplayName 属性设置为名称-值对组。然后,调用 legend 命令创建图例。
x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')
hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')
legend
        添加或删除数据序列时,图例会自动更新。如果您向坐标区添加更多数据,请使用 DisplayName 属性指定标签。如果不设置 DisplayName 属性,则图例使用 'dataN' 形式的标签。添加 2017 年数据的散点图。
x3 = [0 1 2 3 4 5];
y3 = [0.1 0.4 0.6 0.9 0.8 0.7];
scatter(x3,y3,'filled','DisplayName','2017')
drawnow
hold off

2.3 自定义图例外观

        legend 函数会创建一个 Legend 对象。 Legend 对象具有可用于自定义图例外观的属性,如
Location Orientation FontSize Title 属性。有关完整列表,请参阅 Legend 属性。
        您可以通过两种方式设置属性:
        • 在 legend 命令中使用名称-值对组。在大多数情况下,当您使用名称-值对组时,必须在元胞数组中指定标签,例如 legend({'label1','label2'},'FontSize',14)
        • 使用 Legend 对象。您可以将 Legend 对象作为 legend 函数的输出参数返回,例如 lgd =
legend 。然后,通过圆点表示法使用 lgd 来设置属性,如 lgd.FontSize = 14

2.4 图例位置和方向

        通过将 Location Orientation 属性设置为名称-值对组来指定图例的位置和方向。将位置设置为八个基本及斜角方位之一,在本例中为 'northwest' 。将方向设置为 'vertical' (默认)或 'horizontal'(在本例中为后者)。以元胞数组形式指定标签。
x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)
hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off
legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')

2.5 图例字体大小和标题

        通过设置 FontSize Title 属性来指定图例字体大小和标题。将 Legend 对象赋给变量 lgd。然后,通过圆点表示法使用 lgd 更改属性。
x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')
hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')
hold off
lgd = legend;
lgd.FontSize = 14;
lgd.Title.String = '2016 Data';

2.6 具有多列的图例

        创建一个包含六个线图的图。通过将 NumColumns 属性设置为 2 来添加一个具有两列的图例。
x = linspace(0,10);
y1 = sin(x);
y2 = sin(0.9*x);
y3 = sin(0.8*x);
y4 = sin(0.7*x);
y5 = sin(0.6*x);
y6 = sin(0.5*x);
plot(x,y1,'DisplayName','sin(x)')
hold on
plot(x,y2,'DisplayName','sin(0.9x)')
plot(x,y3,'DisplayName','sin(0.8x)')
plot(x,y4,'DisplayName','sin(0.7x)')
plot(x,y5,'DisplayName','sin(0.6x)')
plot(x,y6,'DisplayName','sin(0.5x)')
hold off
lgd = legend;
lgd.NumColumns = 2;

2.7 在图例中包含图的子集

        合并两个条形图和一个散点图。将 Bar 对象 b1 b2 指定为 legend 函数的第一个输入参数,创建一个仅包含条形图的图例。以向量形式指定对象。
x = [1 2 3 4 5];
y1 = [.2 .4 .6 .4 .2];
b1 = bar(x,y1);
hold on
y2 = [.1 .3 .5 .3 .1];
b2 = bar(x,y2,'BarWidth',0.5);
y3 = [.2 .4 .6 .4 .2];
s = scatter(x,y3,'filled');
hold off
legend([b1 b2],'Bar Chart 1','Bar Chart 2')

  • 40
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如何在MATLAB中做出标签页的效果-test.m 刚才看到有会员朋友说matlab中控件少,math说ActiveX中多的是啊,于是我也就顺便打开ActiveX看看里面都有什么。突然看到个单词tabbed……难道这就是困扰我多日的标签页?(已经解决)遗憾的是不知道为什么在我这里这个Microsoft Tabbed Dialog Control 6.0(SP5)不能用,显示的错误是Error using--->feval。Error 类别未授权使用,所以我连预览也不能。哪位兄弟知道解决方法别忘了给我发个消息啊,言归正传,继续说标签页。到mathworks一搜,果然是有高人的。 关于标签页的制作给出了三种方法,第一种就不介绍给大家了,因为时间久远到现在改方法已经失效,但是也放在附件中供大家参考就是那个tab。第二种是让我眼前一亮的。使用方法是这样:首先建立一个figure,并在其中加入一个Text控件,需要注意的是这个text控件所在的位置就是将来标签页所在的位置,然后将附件中的tabpanel2.6中的文件放到figure同目录下,然后在命令行输入 tabpanel,第一个参数是figure的名字,第二个参数是刚才加入的text控件的tag。这时候等侯一下,会出现一个运行的figure和一个小面板,在面板上有几项分别是(从上到下从左到右)添加标签、编辑标签、更新标签、当前标签前移、当前标签后移、设置、信息。这是点击第一个,就可以添加标签页了,大家自己试试就明白了,然后可以设置标签的lable、尺寸、风格、排列、颜色……非常方便。如果点击编辑标签,出来一个新的GUIDE,别怀疑,就在上面添加控件就可以了,添加完保存然后回到这个小面板点击更新标签,刚才添加的控件就出现了。大家可以试试。 第三种方法是用matlab的一个函数:tabdlg,但是这个函数的使用帮助在新版本中已经没有了,因为以后的版本中要改变这个函数,不过还是有个列子是用这个函数创建标签页的,附件中的tabgui.m就是对应的程序,直接运行就可以,典型的matlab风格。各位可以仿照程序的编写方法在它的基础上创建控件。 另外还有一种方法,就是我前一阵子写程序时用的,就是与JAVA混合编程。这个就比较麻烦了,对JAVA甚至C 一窍不通的就掠过吧。这其中涉及到了JAVA的布局、容器、框架等等。附件中的text.m是对应的文件。 总是抑制不住自己冲动的心情想把好玩的东西告诉别人。见谅。 前三种方法转自mathworks 与JAVA混合的方法转自仿真论坛。 本人无才只能跟风。
如何在MATLAB中做出标签页的效果-tabgui.m 刚才看到有会员朋友说matlab中控件少,math说ActiveX中多的是啊,于是我也就顺便打开ActiveX看看里面都有什么。突然看到个单词tabbed……难道这就是困扰我多日的标签页?(已经解决)遗憾的是不知道为什么在我这里这个Microsoft Tabbed Dialog Control 6.0(SP5)不能用,显示的错误是Error using--->feval。Error 类别未授权使用,所以我连预览也不能。哪位兄弟知道解决方法别忘了给我发个消息啊,言归正传,继续说标签页。到mathworks一搜,果然是有高人的。 关于标签页的制作给出了三种方法,第一种就不介绍给大家了,因为时间久远到现在改方法已经失效,但是也放在附件中供大家参考就是那个tab。第二种是让我眼前一亮的。使用方法是这样:首先建立一个figure,并在其中加入一个Text控件,需要注意的是这个text控件所在的位置就是将来标签页所在的位置,然后将附件中的tabpanel2.6中的文件放到figure同目录下,然后在命令行输入 tabpanel,第一个参数是figure的名字,第二个参数是刚才加入的text控件的tag。这时候等侯一下,会出现一个运行的figure和一个小面板,在面板上有几项分别是(从上到下从左到右)添加标签、编辑标签、更新标签、当前标签前移、当前标签后移、设置、信息。这是点击第一个,就可以添加标签页了,大家自己试试就明白了,然后可以设置标签的lable、尺寸、风格、排列、颜色……非常方便。如果点击编辑标签,出来一个新的GUIDE,别怀疑,就在上面添加控件就可以了,添加完保存然后回到这个小面板点击更新标签,刚才添加的控件就出现了。大家可以试试。 第三种方法是用matlab的一个函数:tabdlg,但是这个函数的使用帮助在新版本中已经没有了,因为以后的版本中要改变这个函数,不过还是有个列子是用这个函数创建标签页的,附件中的tabgui.m就是对应的程序,直接运行就可以,典型的matlab风格。各位可以仿照程序的编写方法在它的基础上创建控件。 另外还有一种方法,就是我前一阵子写程序时用的,就是与JAVA混合编程。这个就比较麻烦了,对JAVA甚至C 一窍不通的就掠过吧。这其中涉及到了JAVA的布局、容器、框架等等。附件中的text.m是对应的文件。 总是抑制不住自己冲动的心情想把好玩的东西告诉别人。见谅。 前三种方法转自mathworks 与JAVA混合的方法转自仿真论坛。 本人无才只能跟风。
要绘制带有图例标签标题和突出显示的折线,可以使用 MATLAB 的 plot 函数和相应的属性设置。 以下是一个示例代码,用于绘制一个带有两条折线表: ```matlab % 定义 x 和 y1、y2 的值 x = 1:10; y1 = [1 3 5 7 9 11 13 15 17 19]; y2 = [2 4 6 8 10 12 14 16 18 20]; % 绘制折线 plot(x, y1, '-o', 'LineWidth', 2, 'MarkerSize', 8); hold on plot(x, y2, '-^', 'LineWidth', 2, 'MarkerSize', 8); % 添加标题标签图例 title('折线'); xlabel('X 轴'); ylabel('Y 轴'); legend('折线1', '折线2'); % 突出显示某些点 highlighted_points = [3 6 9]; hold on plot(x(highlighted_points), y1(highlighted_points), 'ro', 'MarkerSize', 10, 'MarkerFaceColor', 'r'); plot(x(highlighted_points), y2(highlighted_points), 'b^', 'MarkerSize', 10, 'MarkerFaceColor', 'b'); ``` 解释一下代码: - 第一行定义了 x 的值,即 1 到 10 的序列。 - 第二行和第三行分别定义了 y1 和 y2 的值,这是两个要绘制的折线的纵坐标。 - 第五行使用 plot 函数绘制了第一个折线。'-o' 表示使用实线和圆形点绘制,'LineWidth' 和 'MarkerSize' 分别指定线条宽度和点的大小。 - 第六行使用 hold on 命令保持形窗口,使得后续的 plot 函数绘制的形不会覆盖之前的形。 - 第七行使用 plot 函数绘制了第二个折线。'-^' 表示使用实线和三角形点绘制,'LineWidth' 和 'MarkerSize' 分别指定线条宽度和点的大小。 - 第九行添加标题。 - 第十行和第十一行分别添加了 x 轴和 y 轴的标签。 - 第十二行使用 legend 函数添加图例。 - 第十五行和第十六行使用 plot 函数突出显示第一个和第二个折线上的一些点,'ro' 表示红色圆形点,'b^' 表示蓝色三角形点,'MarkerSize' 和 'MarkerFaceColor' 分别指定点的大小和填充颜色。 在 MATLAB 命令窗口中执行上述代码,即可看到绘制出的折线

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

配电网和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值