我有彩色线条,我想绘制具有特定值的那些线条的颜色条。线条按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
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
查看'Ytick'和'YtickLabel'。第一个用于定义要显示刻度线的颜色条(您所说的原始范围)的点(值)。在你的图中,这些点/值是10,20,30 ... 60。另一方面,'YtickLabel'属性定义将在Ytick位置显示的内容(如果我理解正确,您提到的定义范围)。 因此,您可以创建一个颜色条,获取它的句柄:
h = colorbar;
然后: a)确定要在颜色栏中“勾选”多少个值(在此示例中为原始六个):
set(h,'Ytick',linspace(10,60,6));
b)确定每个'ticks'中显示的值
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将循环。