首页 文章

如何在Matlab中绘制具有特定值范围的colorbar

提问于
浏览
0

我有一个彩色线条,我想绘制具有特定值的那些线条的颜色条 . 线条按RGB值着色 . 现在我想将colorbar的值更改为另一个值范围 . 我的意思是,我只需要将colorbar中显示的值的范围更改为另一个范围 . 在这个Link中,有我的原始颜色条输出,我想将颜色条的值更改为另一个值范围,如This . 这是我写的代码,它一直显示我的原始范围而不是我的定义范围

hold on
for k = 1:Num_Line_SIFTS
 plot3([SIFT_1((k,1),SIFT_2((k,1)],[SIFT_1((k,2),SIFT_2((k,2)],[SIFT_1((k,3),SIFT_2((k,3)],...
       'o-','Color',[RGB_0_1(k,1) RGB_0_1(k,2) RGB_0_1(k,3)],'MarkerFaceColor',[RGB_0_1(k,1) RGB_0_1(k,2) RGB_0_1(k,3)],'MarkerEdgeColor',...
       'k', 'LineWidth',2)
end

h = colorbar;
set(h,'xlim', [ min(min(Uncertainty_Distances_between_SIFTs))  max(max(Uncertainty_Distances_between_SIFTs))])

hold off

任何人都可以帮我解决这个问题吗?

1 回答

  • 1

    看看'Ytick'和'YtickLabel' . 第一个用于定义要显示刻度线的颜色条(您所说的原始范围)的点(值) . 在你的图中,这些点/值是10,20,30 ... 60 . 另一方面,'YtickLabel'属性定义将在Ytick位置显示的内容(如果我理解正确,您提到的定义范围) . 因此,您可以创建一个颜色条,获取它的句柄:

    h = colorbar;
    

    然后:a)确定要在颜色栏中“勾选”多少个值(在此示例中为原始六个):

    set(h,'Ytick',linspace(10,60,6));
    

    b)确定每个'滴答'中将显示的值

    set(h,'Yticklabel', linspace(min(min(Uncertainty_Distances_between_SIFTs)),  max(max(Uncertainty_Distances_between_SIFTs)),6));
    

    您还可以将完全任意的值显示为ticklabels,甚至是文本:

    set(h,'Yticklabel',{'a','b','c'});
    

    如果提供的ticklabel值小于定义的ticks,则ticklabels将循环 .

相关问题