简体   繁体   English

MATLAB 条 plot 的频率

[英]MATLAB bar plot of frequencies

I have the following code which counts the number of 'negatives' for each unique ID.我有以下代码计算每个唯一 ID 的“底片”数量。

clc
clear
close all

data = {
'vajbfch07wu11y90'  'negative'
'ekvpmhqybu920hnr'  'negative'
'eddbdv5bsqggeydq'  'negative'
'eddbdv5bsqggeydq'  'negative'
'eddbdv5bsqggeydq'  'negative'
'eddbdv5bsqggeydq'  'negative'
'eddbdv5bsqggeydq'  'negative'
'eddbdv5bsqggeydq'  'negative'
'6vmhbj7041fe7xck'  'negative'
'6vmhbj7041fe7xck'  'negative'
'6vmhbj7041fe7xck'  'negative'
'6vmhbj7041fe7xck'  'negative'
'j5d6dgzbeynyyg02'  'negative'
'j5d6dgzbeynyyg02'  'negative'
'j5d6dgzbeynyyg02'  'negative'
'v21tstcp164uya6g'  'negative'
'v21tstcp164uya6g'  'negative'
'brjmfpunj00rn92c'  'negative'
'brjmfpunj00rn92c'  'negative'
'mb8nggnegcwq9nqc'  'negative'
'vk4ga34492m01hwv'  'negative'
'vk4ga34492m01hwv'  'negative'
'vk4ga34492m01hwv'  'negative'
'vk4ga34492m01hwv'  'negative'
'd9hk2zeexhxp2h0v'  'negative'
'f93xk5sq60ehp34j'  'negative'
'f93xk5sq60ehp34j'  'negative'
'ypzzn212hqvwjtc9'  'negative'
'0q2mmnq0wb97z7bm'  'negative'
'jh8k1dd9g2p2d218'  'negative'
'2e5tr0scw89z68kg'  'negative'
'2e5tr0scw89z68kg'  'negative'
'5zb72reqnsxnzuca'  'negative'
'5zb72reqnsxnzuca'  'negative'
'5zb72reqnsxnzuca'  'negative' };

c = categorical(data(:, 1));
[categories(c), num2cell(countcats(c))]

the output is this: output 是这样的:

'0q2mmnq0wb97z7bm'  1
'2e5tr0scw89z68kg'  2
'5zb72reqnsxnzuca'  3
'6vmhbj7041fe7xck'  4
'brjmfpunj00rn92c'  2
'd9hk2zeexhxp2h0v'  1
'eddbdv5bsqggeydq'  6
'ekvpmhqybu920hnr'  1
'f93xk5sq60ehp34j'  2
'j5d6dgzbeynyyg02'  3
'jh8k1dd9g2p2d218'  1
'mb8nggnegcwq9nqc'  1
'v21tstcp164uya6g'  2
'vajbfch07wu11y90'  1
'vk4ga34492m01hwv'  4
'ypzzn212hqvwjtc9'  1

I want to generate a bar plot of this output, which shows how many ID's have a count of at least 1, how many ID's have a count of at least 2, how many ID's have a count of at least 3...我想生成这个 output 的条形图 plot,它显示有多少 ID 的计数至少为 1,有多少 ID 的计数至少为 2,有多少 ID 的计数至少为 3 ...

How do i do this?我该怎么做呢?

at the moment my bar plot looks like this which isn't what I want目前我的酒吧 plot 看起来像这样,这不是我想要的

barh(countcats(c)); set(gca, 'YTickLabels', categories(c))

当前条形图

There are two things which are relevant in this case;在这种情况下有两件事是相关的; yticks and yticklabels . yticksyticklabels In order to display 16 yticklabels , you need to have 16 xticks defined before using the yticklabels .为了显示 16 个yticklabels ,您需要在使用xticks之前定义 16 个yticklabels

barh(countcats(c));
yticks(1:numel(countcats(c)));
yticklabels(categories(c));

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM