【问题标题】:Rotating axis tick labels in a heatmap plot热图中的旋转轴刻度标签
【发布时间】:2019-07-17 08:29:52
【问题描述】:

当我在 MATLAB 2018b 上生成热图时,x-tick 标签会自动旋转,但通常角度我不喜欢。

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

ax = gca;
ax.XTickLabelRotation = 90

xtickangle(90)

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

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


可重现的例子:

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)

【问题讨论】:

    标签: matlab plot rotation heatmap axis-labels


    【解决方案1】:

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

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

    但有一个警告:热图图表是交互式的(至少在 R2019a 上),单击任何标签对热图进行排序会反转此更改(即,将文本旋转回来)。如果您需要交互性以及旋转,则需要找到执行的回调/事件并以某种方式将旋转代码捎带到它上面。但是,如果您要创建用于导出的图表 - 这应该不是问题。

    【讨论】:

    • 谢谢,这对我有用。我不需要交互性,我只想绘制热图并将其打印到 png。
    • 谢谢,解决了我的问题,其他解决方案不支持热图图表
    猜你喜欢
    • 2015-01-18
    • 2015-05-04
    • 2020-12-04
    • 2015-11-21
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多