如何使用分类数据显示包含重复值的排序条形图

编码器

我有以下示例数据:

names = ["JFK", "BOS", "YYZ", "LAX"];
values = [1, 2, 2, 3];

我创建创建一个categorical数组

>> cat = categorical(names)

cat = 

  1×4 categorical array

     JFK      BOS      YYZ      LAX 

然后用数据创建水平条形图:

barh(cat, values);

这是输出的样子:

未排序的条形图

如您所见,条形图的y轴按字母顺序自动排序,但我想改为根据值对条形图进行排序。值最大的类别位于图的顶部,值最小的类别位于图的底部,如下所示:

LAX -| XXXXXXXXX
YYZ -| XXXXXX
BOS -| XXXXXX
JFK -| XXX

我该怎么做?

路易斯·门多

的文档barh确实说(添加了斜体)

默认情况下,类别按字母顺序显示。

但是,我还没有找到可以替代“默认”行为的输入选项。

解决方法如下:

  1. 应用sort到值,并获得该函数的第二个输出。这说明了要应用的顺序cat
  2. 在不指定分类数据作为第一个输入的情况下绘制值。
  3. 将轴刻度线更改为类别名称。您可以用于string将类别转换为类别名称(应用适当的顺序后)。

那是:

[values_sorted, ind_sort] = sort(values);       % step 1
barh(values_sorted)                             % step 2
set(gca, 'yticklabel', string(cat(ind_sort)))   % step 3

如评论中所述,另一种方法是使用内置的适当顺序创建分类数组。显然,可以按以下步骤完成操作(不确定其工作方式):

names = ["JFK", "BOS", "YYZ", "LAX"];
values = [1, 2, 2, 3];
[~, ind_sort] = sort(values);
names_char = cellfun(@char, names, 'UniformOutput', false);
cat = categorical(ind_sort, ind_sort, names_char);

所以现在

barh(cat, values)

按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何缩放条形图的条形图,以便显示包含数据的完整图形

如何在条形图的条形图中显示值?

如何获得分类数据的分组条形图

当条形按 ggplotly 中的值排序时,如何在条形图工具提示上显示变量名称

如何在海洋条形图的每个条形图的顶部显示y值?

条形图分组时显示条形图的值

在这种情况下,如何使用 barh() 在每个条形图的条形图上显示值?

如何使用 matplotlib 绘制条形图,“x”在名称中包含值和“y”

熊猫堆积条形图与排序的值

根据 y 的值排序条形图

使用数据库的条形图不显示

叠加条形图以使用 plotly 显示基准数据

使用条形图显示csv文件中的数据

如何使用每个离散值的条形图创建条形图/直方图?

使用 matplotlib,如何绘制条形图而不显示日期索引值之间的日期?

如何在单元格值悬停时通过Rshiny中的点图/条形图显示数据摘要

如何对矩阵的条形图进行排序?

IOS 条形图 - 如何在条形图上显示值(1.0、2.0 等)标签并在条形图滚动上显示特定值(如 3 - 7)

如何制作具有两个显示比例的分类变量的分组条形图?

如何在charts.js中的特定条形值上对堆积条形图进行排序

如何使用JSON数据创建JasperReports条形图?

如何使用php数据变量创建条形图

如何使用提供的数据创建条形图。精益求精

C3使用分类JSON数据创建条形图

用于分类数据的seaborn条形图,已分组

具有分类和数值数据的熊猫条形图

如何水平显示堆积的条形图?

使用具有重复类别的 ggplot 重新排序条形图

如何在Pandas数据框中正确绘制条形图?x值一直显示为索引