1

我正在尝试重现一个带状图,就像 Windows 碎片整理中的图一样。

在此处输入图像描述

原则上,可以很容易地通过contourf对一个沿一维(对应于图片中的垂直维度)为常数的矩阵做a来得到。

你知道是否有本地方法可以获得这样的图表?

4

2 回答 2

3

尝试:

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 矩阵来使用自己的颜色图。

截屏

于 2013-07-08T23:59:48.190 回答
0

不确定这是否是您所要求的,但 matlab 中没有专门的功能来执行此操作。但是,您可以轻松实现自己的函数,该函数用于line根据您的数据绘制大量线条。在线条的句柄上使用 get/set 可以让您控制它们的颜色、宽度等(也基于函数的输入)。

于 2013-07-08T22:44:02.647 回答