【问题标题】:Matlab - How can I sort rows for a bar chart without losing row names?Matlab - 如何在不丢失行名的情况下对条形图的行进行排序?
【发布时间】:2019-11-09 10:31:21
【问题描述】:

我正在 Matlab 中分析双数组以创建条形图。每行对应一个国家,并具有比较的特定值。行的名称存储在一个元胞数组中,并由set(gca,'XTickLabel',{Combined{:,1}}) 在条形图中实现。这假设在分析过程中行的顺序保持不变。

但是,在我的分析中,我需要对行进行排序以找出表现最好和最差的国家/地区。通过这样做,我无法绘制与其国家相对应的国家/地区的条形图。这就是我对双数据进行排序的方式:

[~,SortLR2018] = sort(d2018(:,4));
LR2018 = d2018(SortLR2018,:);

有谁知道我如何对国家名称(单元格数组)进行排序,以使它们与排序后的值(双数组)相匹配?

【问题讨论】:

  • 这个set(gca,'XTickLabel',{Combined{SortLR2018,1}}) 有效吗?我认为您可以使用排序数组的索引。

标签: matlab sorting bar-chart


【解决方案1】:

最简单的方法是使用排序数据的索引来索引包含名称的元胞数组:

set(gca,'XTickLabel',{Combined{SortLR2018,1}})

我建议将您的数据实现为tables,这样您就可以将名称链接到各种行数据。

【讨论】:

  • 谢谢,这个解决方案有效!我想我在选择列数据时犯了一个错误。我接受了你的回答!
猜你喜欢
  • 2012-10-20
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
  • 2018-11-16
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多