我正在尝试重现一个带状图,就像 Windows 碎片整理中的图一样。
原则上,可以很容易地通过contourf
对一个沿一维(对应于图片中的垂直维度)为常数的矩阵做a来得到。
你知道是否有本地方法可以获得这样的图表?
尝试:
vec = [1*ones(1,10), 2*ones(1,5), 3*ones(1,20), 4*ones(1,15)];
image('CData',vec, 'CDataMapping','direct')
colormap(lines(4))
axis tight off
甚至可能:
imshow(repmat(vec,10,1), lines(4))
imshow(vec, lines(4), 'YData',[0 10])
这是使用具有直接颜色映射的索引图像,其中值1
映射到第一种颜色,值2
映射到第二种颜色等等。您当然可以通过指定 N×3 矩阵来使用自己的颜色图。
不确定这是否是您所要求的,但 matlab 中没有专门的功能来执行此操作。但是,您可以轻松实现自己的函数,该函数用于line
根据您的数据绘制大量线条。在线条的句柄上使用 get/set 可以让您控制它们的颜色、宽度等(也基于函数的输入)。