【问题标题】:Legend in gplotmatrixgplotmatrix 中的图例
【发布时间】:2015-03-06 08:29:23
【问题描述】:

给定一个N x M 特征矩阵featMat(用于M 特征和N 样本)和一个N x 1 类向量classVec,我们可以在gplotmatrix 的帮助下很好地可视化这个多元数据。

示例:

featMat = rand(10,3);
classVec = rand(10,1) > 0.3;
gplotmatrix(featMat, [], classVec, ['g','r']);

我的问题: 我怎样才能控制这个情节的传说?我需要的是 在我的classVec 中出现的每个类具有特定颜色的特定文本

评论:可以用元胞数组替换整数 classVec 来控制文本(例如classVec = {'foo','bar','bar', ..., 'foo'})。在这种情况下,我不知道如何控制哪个类获得哪种颜色。这似乎取决于classVec 中的出现顺序。有什么建议吗?

【问题讨论】:

  • 也许这会有所帮助:stackoverflow.com/questions/25875628/…
  • @Dev-iL 感谢您的快速响应。但是,在第一次测试中,我无法在绘图后直接使用legend 命令设置图例。我确信可以通过“更深”的属性操作来操作所有内容,但我期待gplotmatrix 提供一种设置其图例的自然方式。我相信这很容易。不应该吗?我只是找不到答案... :)
  • 似乎只有一个轴包含图例...即使不是这种情况,您也可以使用 findobj 来获取图例句柄。顺便说一句,这是哪个版本的 MATLAB?
  • @Dev-iL Matlab 2012b。是的,你是对的。我只是想知道为什么gplotmatrix 似乎没有提供更自然的方式来设置其传奇。

标签: matlab plot legend legend-properties


【解决方案1】:

可以找到由gplotmatrix 创建的图例,因为它的'Tag' 属性设置为'legend'(至少在Matlab R2010b 中)。所以:

featMat = rand(10,3);
classVec = rand(10,1) > 0.3;
gplotmatrix(featMat, [], classVec, ['g','r']);
h = findobj('Tag','legend');
set(h, 'String', {'Text1', 'Text2'})

【讨论】:

  • 非常感谢,它有效(适用于我的 Matlab 2012b)!这确实是“财产操纵解决方案”:)
  • @matheburg 是的,gplotmatrix 应该能够更自然地处理这个问题;或者至少返回图例的句柄
  • 注意:您应该将findobj 限制为感兴趣的数字;否则所有图中的所有图例均受set 影响。
猜你喜欢
  • 2016-12-09
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 2013-06-28
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多