【问题标题】:add colorbar with yticklabes matlab使用 yticklabes matlab 添加颜色条
【发布时间】:2014-12-04 14:31:43
【问题描述】:

我运行 Matlab R2013b

我想在我的图表上运行一个颜色条,而不是指定的 4 个标签

figure
plot(1:100,rand(100))
hcb = colorbar('YTickLabel',{'Sleeping','Very light','Light','Moderate to vigorous'});

我得到 6 个标签:{'Sleeping','Very light','Light','Moderate to vigorous','Sleeping','Very light'}

【问题讨论】:

    标签: matlab colorbar


    【解决方案1】:

    colorbar 默认使用 64 色的颜色图。默认情况下,这会导致 Matlab 在颜色栏中放置 6 个 yticks,即 10、20、... 60。

    当您设置 'Yticklabel' 属性时,如果您传递的字符串少于 yticks 的数量,则这些字符串将被循环遍历。这就是你观察到的行为。

    解决方案是将 yticks 的数量减少到 4,使其与您拥有的字符串数量相匹配。您可能还想使用 4 色颜色图:

    figure
    plot(1:100,rand(100))
    colormap(hsv(4)) %// example colormap with 4 colors.
    hcb = colorbar;
    set(hcb, 'Ytick', [1:4]+.5); %// 4 yticks, each "in the middle" of one color
    set(hcb, 'YTickLabel', {'Sleeping','Very light','Light','Moderate to vigorous'});
    

    【讨论】:

    • 谢谢。我添加了一些空标签...虽然不完美但可以接受。
    • 对于默认的 'jet' 颜色图,您可以使用:set(hcb, 'YTick', [1:4]*64/5);
    • 谢谢!是否仍然可以使用颜色图的所有颜色?
    • set(hcb, 'Ytick', 1:round(64/4):64]);这或多或少是我想要的
    • 是否可以在您的图表中更改颜色栏中颜色的“大小”?例如红色应该小于绿色...Red [0;1.1] Green [1.1 2] Blue [2 3] and Purple [4:end]
    【解决方案2】:

    我认为您还需要指定一个相同长度的向量Ticks,例如(R2014b 的语法,R2013b 的语法可能略有不同):

    colorbar('Ticks',[0 0.3 0.6 0.9],...
             'TickLabels',{'Sleeping','Very light','Light','Moderate to vigorous'})
    

    【讨论】:

    • 这适用于 matlab 2014 不幸的是不适用于 2013
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 2019-09-09
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    相关资源
    最近更新 更多