我如何更改matlab的颜色条缩放?

6

我很难理解如何在Matlab2015b中更改颜色条的范围。

默认情况下,它将从0到1范围内变化。我成功地使用以下代码更改了标签:

    c=colorbar;
    c.Limits=[0 180] % the range that I want

问题在于当我这样做时,颜色不会随之缩放,换句话说,它将显示从0到180,但仍然使用与[0 1]相关联的颜色,这使得整个条看起来像一个颜色。

enter image description here

我采用了另一种方法,只需更改刻度并执行:
colorbar('Yticks',[0:10:180])
同样,色条仍与0到1相关联,因此除了0以外的所有刻度都不会出现,因为第一个从10开始。

enter image description here

我该如何更改它所基于的数据?我尝试更改 c.UserData ,但没有任何作用。

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Schorsch
当然, 在这种情况下,我确实将colorbar与图形本身分开使用,而不是绘制表面并将colorbar添加到其中。我正在绘制一系列曲线,并希望使用colorbar代替图例(因为有许多曲线,这样看起来更好)。h = loglog(fliplr(PeTotal)/1e6,zTab/1000);%我正在绘制的曲线集colorCode = jet(length(chiTab));for k = 1:length(chiTab)%length(chiTab)只是曲线数set(h(k),'Color',colorCode(k,:));endcolormap(colorCode);colorbar; - Kevin Héritier
2个回答

2

从您的评论中,我了解到您想要做什么。

您在设置ytick方面是正确的,但是正如您注意到的那样,这只会更改颜色条上刻度的位置,但缩放保持不变。相反,请尝试设置yticklabel

% Show the colorbar
c = colorbar;

% Define the desired ticks
ticks = [0:10:180];

% Sets the correct location and number of ticks
set(c, 'ytick', ticks / max(ticks));

% Set the tick labels as desired
set(c, 'yticklabel', ticks);

1
不需要手动覆盖刻度规范的方法可以通过以下方式实现:
limits = [0,180];
c = colorbar;
set(gca,'clim',limits([1,end]))

从那里开始,刻度可以根据需要手动更改或保持不变。

  1. 原始比例色条
  2. 重新调整比例,但保留自动刻度标签

enter image description here enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接