カテゴリカル配列を X 軸データに使った棒グラフを bar 関数で描画すると、削​除したはずのデータが​表示されるのはなぜで​すか?

13 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2022 年 3 月 3 日
回答済み: MathWorks Support Team 2022 年 3 月 3 日
bar 関数を使った棒グラフを作成しています。​
Y軸のデータには NaN (欠損値)を含むデータがあるため、isnan 関数を使用してあらかじめ取り除いているのですが、X 軸データにカテゴリカル配列(categorical array) を使用していると、空のビンとしてグラフに表示されてしまいます。
 
%% サンプルデータ定義
x = categorical(1:5);
y = [1 2 NaN 5 10];
%% グラフィックス作成
figure
ind = ~isnan(y); % NaN を含むインデックスを検出
bar(x(ind),y(ind)) % 棒グラフ作成

採用された回答

MathWorks Support Team
MathWorks Support Team 2022 年 3 月 3 日
これは横軸(X 軸)にカテゴリカル配列を使用しているためです。
NaN を含む列を削除しても、カテゴリの種類としては "3" も含まれています。
>> categories(x(ind))
ans =
5×1 cell 配列
{'1'}
{'2'}
{'3'}
{'4'}
{'5'}
空のカテゴリを削除するためには、removecats 関数を使用します。
>> bar(removecats(x(ind)),y(ind))

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeデータ分布プロット についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!