在热图图中旋转轴刻度标签

时间:2019-07-17 08:29:52

标签: matlab plot rotation heatmap axis-labels

当我在MATLAB 2018b上生成热图图时,x-tick标签会自动旋转,但通常会以我觉得不舒服的角度旋转。

我想硬编码它们应该始终旋转90度。 通常,此代码可以解决问题:

ax = gca;
ax.XTickLabelRotation = 90

xtickangle(90)

,但热图不支持两个版本。

如何在热图图中手动旋转XTickLable?


可复制的示例:

cdata = [45 60 32; 43 54 76; 32 94 68; 23 95 58];
xvalues = {'Small','Medium','Large'};
yvalues = {'Green','Red','Blue','Gray'};
h = heatmap(xvalues,yvalues,cdata);
xtickangle(90)

1 个答案:

答案 0 :(得分:4)

实际上,HeatmapChart对象不支持旋转标签,但是,内部Axes对象支持旋转标签,我们可以使用struct如下所示:

set(struct(h).NodeChildren(3), 'XTickLabelRotation', 90); % put instead of the last example line

不过需要注意的是:热图图表是交互式的(至少在R2019a上是这样),并且单击任何标签以对热图进行排序可以逆转此更改(即,将文本向后旋转)。如果您需要交互性以及轮播,则需要找到要执行的回调/事件,并以某种方式将轮换代码附加到其上。但是,如果要创建要导出的图表-这应该不是问题。