【问题标题】:MATLAB: How to add custom ticks and labels to an imagesc plot?MATLAB:如何将自定义刻度和标签添加到 imagesc 图?
【发布时间】:2018-04-29 20:52:38
【问题描述】:

我制作了一个矩阵,其中包含 13 个不同的向量,行数约为 300K+。我通过转置矩阵并使用 imagesc 函数查看颜色分布来可视化矩阵。所有向量都在 0 和 1 之间单独进行了重新采样、处理和归一化。

imagesc 图给了我这个结果(图 1):

但是,当我使用轴功能添加 x 和 y 限制时,我得到了:

如何在向 X 和 y 轴添加自定义刻度和标签的同时维护 imagesc 图? x 轴代表时间,而 y 轴将获得带有传感器名称的自己的标签。

【问题讨论】:

    标签: matlab plot signal-processing visualization


    【解决方案1】:

    您在 x 轴上重新定义从 0 到 30 的限制,而初始 xlimits 上升到 3e5。 y轴也有同样的问题

    以下是如何重新定义 Y 轴以放置传感器名称:

    C = [0 2 4 6 9 ; 8 10 12 44 14; 16 48 10 32 23];
    image(C)
    % Get axis handle
    ax = gca;
    
    % Set where ticks will be
    ax.YTick = [1 2 3];
    % Set TickLabels;
    ax.YTickLabel = {'S1','S2','S3'};
    

    找出您希望标签出现的ax.YTick

    如果您希望 x 轴从 0 变为 30,请在绘图前将所有向量的 x 分量除以 1e4。或者,您可以添加以下行:

    ax.XTickLabel = ax.XTick/1e4;
    

    【讨论】:

    • 效果很好。但是,我对 XTick 有点困惑。我创建了一个数组 ax.XTick [0e5 ... 30e5] 似乎不起作用。有什么建议吗?
    • 我建议您首先运行您的代码并简单地输出 ax.XTick 以查看它的外观,然后更新代码以定义您想要的 XTick。如果您将数据除以 1e4,则 ax.XTick = [0e5 30e5] 只会显示一个刻度 0。
    • 我之前能够自己修复它。浏览了相关文档。
    猜你喜欢
    • 2014-04-10
    • 2016-01-07
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多