如何在MATLAB中用颜色条替换图例?

kognpnkq  于 2023-08-06  发布在  Matlab
关注(0)|答案(1)|浏览(126)

我有一个有几条线的线图,但不是一个图例,我更喜欢有一个颜色条来指示每条线的值(在我的情况下是时间)。
到目前为止,我最好的尝试如下(我只包括代码的相关部分):

colormap('jet');
cmin = min(t);
cmax = max(t);
cmp1 = jet(7); % say, there are 7 lines in my plot 
colororder(cmp1); 

plot() % plot without including 'Color' argument 

colorbar('Location', 'eastoutside');
clim([cmin cmax]);

字符串
我在这里面临的问题是线条的颜色与颜色条不完全对应。
this plot就是一个例子。您可以清楚地看到颜色与颜色条中的值不完全匹配(图例具有正确的值)。例如,如果您检查3600线,则它是对应于深红色的颜色条的最大值;然而在图中它是鲜红色的。

huwehgph

huwehgph1#

这对你有用吗?

colormap('jet');
t = [1, 600, 1200, 1800, 2400, 3000, 3600];
cmin = min(t);
cmax = max(t);
cmp1 = jet(7); % say, there are 7 lines in my plot 
colororder(cmp1); 

plot(magic(7), 'linewidth', 3) % plot without including 'Color' argument 

cbar = colorbar('Location', 'eastoutside');
clim([cmin, cmax])
set(cbar, 'Ticks', t)

字符串


的数据
看看第二个是否适合你。我没有完全理解你的意图。

colormap('jet');
t = [1, 600, 1200, 1800, 2400, 3000, 3600];
cmin = min(t);
cmax = max(t);
cmp1 = jet(7); % say, there are 7 lines in my plot 
colororder(cmp1); 

plot(magic(7), 'linewidth', 3) % plot without including 'Color' argument 

cbar = colorbar('Location', 'eastoutside');
colormap(cmp1)
temp = movmean(linspace(0, 1, 7 + 1), 2);
set(cbar, 'Ticks', temp(2:end))
set(cbar, 'TickLabels', {'foo','bar','ha','ho','hi','hu'})


相关问题