首页 > 解决方案 > 使用 plotmatrix 函数 MATLAB 为 x 和 y 添加标签

问题描述

我设法绘制了一个矩阵(16X16),但我想为每个 x 和 y 轴添加标签。如下所示,标签垂直写在 y 上并相互混合,也写在 x 图形本身上并混合。有没有办法在轴旁边添加标签而不被混合(如第二张照片所示)?

当前图表: 在此处输入图像描述

我想做的事: 在此处输入图像描述

我的代码(在绘制三个标签后停止,因为它不起作用):

[~,ax] = plotmatrix(corr);
ylabel(ax(1,1),'ABCDEFGHIJKLMNOP')
ylabel(ax(2,1),'ABCDEFGHIJKLMNOP')
ylabel(ax(3,1),'ABCDEFGHIJKLMNOP')
xlabel(ax(16,1),'ABCDEFGHIJKLMNOP')
xlabel(ax(16,2),'ABCDEFGHIJKLMNOP')
xlabel(ax(16,3),'ABCDEFGHIJKLMNOP')

标签: matlabplotmatrix

解决方案


如果我了解您的问题,您希望能够为行提供单独的 y 标签,为列提供 x 标签。不幸的是,当您使用时xlabelylabel结果文本重叠。这里有两个解决方案

解决方案 1:使用大轴设置标签

通过引用大轴对水平轴和垂直轴使用单个标签

[~,~,HBigAxe] = plotmatrix(corr);
xlabel(HBigAxe,'Horizontal Label for Columns');
ylabel(HBigAxe,'Vertical Label for Rows');

使用大轴标签

解决方案 2:使用旋转和对齐来避免标签重叠

如果您希望每一行和每一列都有自己的标签,您可以旋转并设置标签的水平对齐方式。例如:

[~,ax] = plotmatrix(corr);
ylabel(ax(1,1),'Y Axis Label','Rotation',0,'HorizontalAlignment','right')
xlabel(ax(end,1),'X Axis Label','Rotation',90,'HorizontalAlignment','right')

个别标签


推荐阅读