在matlab中,在同一图上绘制热图和线图

时间:2015-06-05 05:01:15

标签: matlab

在matlab 2014b中,我想制作一个热图,然后使用正确的y轴覆盖线图。例如

colormap bone
data = rand(6);
imagesc(data)
ax = gca; 
ax.XTick = [1 2 3 4 5 6];
ax.YTick = [1 2 3 4 5 6];

hold on

现在绘制一条线,但使用正确的y轴,因为它具有负值:

x2 = [1 2 3 4 5 6];
y2 = [-0.0001   -0.0997   -0.1997   -0.2995   -0.3994   -0.4995];
plot(x2,y2,'r')

1 个答案:

答案 0 :(得分:1)

您可以使用plotyy的变体进行制作,其中第一个图由NaNs组成。

以下是代码:

hold on

colormap bone
data = rand(6);
imagesc(data)
ax = gca; 
yT = ax.YTick;

x2 = [1 2 3 4 5 6];
y2 = [-0.0001   -0.0997   -0.1997   -0.2995   -0.3994   -0.4995];
[ax, ~, h] = plotyy(yT*NaN, yT, x2,y2);

ax(1).YLim = [yT(1)-0.5 yT(end)+0.5];
ax(1).YTick = yT;
ax(1).YColor = [0 0 0];
set(h, 'Color', 'r');
ax(2).YColor = [1 0 0];
ax(2).YTick = -0.5:0.1:0;

结果:

enter image description here

最佳,