【问题标题】:setting YTickLabel matlab设置 YTickLabel matlab
【发布时间】:2015-01-20 19:27:50
【问题描述】:

在我的YTickLabel 中我无法弄清楚有什么问题:

h2=bar(myData);
ylabels=['1';'1.5';'2';'2.5';'3'];
set(gca,'XTickLabel',applicationNames),'XTick',applicationNames),'YTickLabel',ylabel));

p.s:我也试过了,没有成功:

ax=gca
ax.YTickLabel=['1';'1.5';'2';'2.5';'3'];

我收到此错误:

Error using vertcat
Dimensions of matrices being concatenated are not consistent.

【问题讨论】:

    标签: matlab matlab-figure axis-labels


    【解决方案1】:

    您正在尝试创建一个字符数组。在这种情况下,您尝试创建一个 2D 矩阵,其中列数应具有相同的字符数,行数表示您拥有多少个标签。对于您的字符串,每列的最大字符数为三个(数字/点/数字)。因为您有长度仅为 1 的字符(即只是一个数字),所以您会收到一个不一致的连接错误,因为它期望数组中的所有字符的长度都为 3。

    您实际需要使用的是一个 cell 数组,以适应每个 y 刻度标签的大小不定。因此:

    ax.YTickLabel={'1';'1.5';'2';'2.5';'3'};
    

    或者,由于您的标签是数字,您可以简单地使用数字数组:

    ax.YTickLabel = [1;1.5;2;2.5;3];
    

    如果您想将x 和/或y 轴标记为不仅仅是数字,则使用字符元胞数组。可以使用文本标记y 轴,例如:

    ax.YTickLabel = {'John'; 'Paul'; 'George'; 'Ringo'; 'The Beatles'};
    

    【讨论】:

    • 感谢@rayryeng 的回答,我也尝试过。在这种情况下,我没有收到任何错误,(看到这个):ax = YTickLabel: [1 1.5000 2 20.5000] 但在实际情节上我没有看到变化
    • @Amir - 执行axis tight 看看会发生什么。此外,分享您的数据以便我们重现您的情节也会有所帮助,这样我们就不会建议您已经尝试过的东西
    • 实际上我这样做的原因有点像adjustbarbase,我尝试了一个插件.m 文件但没有用。重点是我想将我的YTickLabel 全部重命名为+1。顺便说一句,axis tight,按照我现在的观察,公平地收紧 YTick
    • 我的数据只是一个 24*1 的字符串。
    • @Amir - 您还需要将YTick 值与YTickLabels 一起设置。如果您不这样做,那么它只会将 y 的前 5 个值分配为您在 YTickLabel 中输入的值...除非这是您的意图。您还应该更新您的问题,向我们展示实际问题是什么。与其说是创建YTickLabels,不如说是你没有得到你期望的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多