如何在Matlab中显示所有自定义轴?

如何在Matlab中显示所有自定义轴?,matlab,matlab-figure,Matlab,Matlab Figure,我正在编写一个代码,以使用自定义记号(非顺序)绘制图形,方法如下: axes1 = axes('Parent',figure,'XTickLabel',col1); box(axes1,'on'); hold(axes1,'all'); plot(col2,'b*') col1和col2从矩阵中提取(每个矩阵有1000个值)。col1的第一个值是:120147644940 生成的图像如下所示: 正如您所看到的,X轴遵循我给出的顺序,但它应该是1000个值,而不是前11个值。。。当col1不增加

我正在编写一个代码,以使用自定义记号(非顺序)绘制图形,方法如下:

axes1 = axes('Parent',figure,'XTickLabel',col1);
box(axes1,'on');
hold(axes1,'all');
plot(col2,'b*')
col1和col2从矩阵中提取(每个矩阵有1000个值)。col1的第一个值是:120147644940

生成的图像如下所示:


正如您所看到的,X轴遵循我给出的顺序,但它应该是1000个值,而不是前11个值。。。当col1不增加(它们是随机数)时,如何将X轴设置为col1?如何使其与我要显示的点(col2)相匹配?

您还必须调整轴的长度,因为它将只使用与记号数量相同的标签,从
col1
数组开始按顺序绘制它们

您有两个常规选项:显示所有标签(由于您有1000个标签,因此会变得混乱)或显示标签的采样。以下是第一种方法的示例:

% Sample data:
col1 = num2cell('a':'z');
col2 = 1:26;

axes1 = axes('Parent', figure, 'XTick', 1:numel(col1), 'XTickLabel', col1);
box(axes1, 'on');
hold(axes1, 'all');
plot(col2, 'b*');


下面是第二种方式的一个示例,仅显示每五个标签:

axes1 = axes('Parent', figure, 'XTick', 1:5:numel(col1), 'XTickLabel', col1(1:5:end));
box(axes1, 'on');
hold(axes1, 'all');
plot(col2, 'b*');

这似乎正是我想要的,我会试试看,谢谢!