Creating a stacked bar plot with a non-unique x-axis.

8 ビュー (過去 30 日間)
Martijn Heemskerk
Martijn Heemskerk 2022 年 7 月 28 日
編集済み: Martijn Heemskerk 2022 年 7 月 29 日
Im working with fear data where the subject will freeze for a specific amount of time. This time varies and the location on the track where this happens also varries. I have 2 arrays, one with the location and one with the length of the fear. I wanted to plot this 'stacked' in a barplot so you can easily see the amount of occurances and the total time someone was frozen at a specific location. However, when i try to do this i get the following error: "XData values must be unique."
Is there a way for me to fix this?
Some example data: (as you can see freezes can happen on the same x location, in this example (and my own data) the 1st x value corresponds with the 1st y value).
x = [2, 3, 6, 9, 2, 6, 2, 5, 4];
y = [4, 2, 3, 1, 3, 2, 5, 2, 5];
bar(x, y, 'stacked')

採用された回答

Voss
Voss 2022 年 7 月 28 日
Does this work?
x = [2, 3, 6, 9, 2, 6, 2, 5, 4];
y = [4, 2, 3, 1, 3, 2, 5, 2, 5];
xx = min(x):max(x);
nxx = numel(xx);
counts = histcounts(x,nxx);
yy = NaN(max(counts),nxx);
for ii = 1:nxx
yy(1:counts(ii),ii) = y(x == xx(ii));
end
bar(xx, yy, 'stacked')
  2 件のコメント
Martijn Heemskerk
Martijn Heemskerk 2022 年 7 月 29 日
編集済み: Martijn Heemskerk 2022 年 7 月 29 日
Nevermind, i found the anomaly! My code was doing something weird, not yours. Thank you for your help!

サインインしてコメントする。

その他の回答 (0 件)

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by