Issues plotting simple bar graph.
14 ビュー (過去 30 日間)
古いコメントを表示
Hello, I have simplified the example problem down to what you see. I have two variables size 11x1 with correspoding data. That said, once I try and plot it comes up with this error as shown below, could someoe care to explain and show what i can do to work around this. I don't understand why this wont work, both array sizes are the same it should plot x and y coordinates respectively?
A = [0.1; 0.4; 1.1; 2.2; 2.5; 0.2; 2.5; 2.2; 1.1; 0.4; 0.1];
B = [25; 20; 15; 10; 5; 0; 5; 10; 15; 20; 25];
bar(B, A);

0 件のコメント
採用された回答
VBBV
2023 年 3 月 20 日
編集済み: VBBV
2023 年 3 月 20 日
A = [0.1; 0.4; 1.1; 2.2; 2.5; 0.2; 2.5; 2.2; 1.1; 0.4; 0.1];
B = [25; 20; 15; 10; 5; 0; 5; 10; 15; 20; 25];
bar(A);
xticks(1:length(A));
xticklabels({B})
As @cyclist mentioned , you need to code it differently if you want to group or stack them. But if you still want the values in the same order as you mentioned, one option is to work with xticks and xticklabels
その他の回答 (1 件)
the cyclist
2023 年 3 月 20 日
編集済み: the cyclist
2023 年 3 月 20 日
The error message is quite clear. Your X values are not unique.
Let's look at a simpler example:
x = [1 2 2];
y = [3 5 7];
bar(x,y)
It is clear that at x==1, there should be a bar of height y==3.
But would should the bar be at x==2? Should it be 5? 7? 5+7? A bar with two sections? It is not clear, which is why the x values need to be unique.
If you want stacked or group bars, you need to code this differently.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!