Bar graph doesn't show bars
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Batuhan Arik
am 7 Okt. 2021
Kommentiert: Batuhan Arik
am 9 Okt. 2021
Hello everyone, I am trying to plot a bar graph with duplicate x values. I want to sum the y values of the duplicate x values. I found some help on the internet which seems to be working. However, when I try to run the code, axes appear bur bars don't appear.
here is my code;
clc
close all
x=X(:,1);
y=X(:,2);
[xnew,~,idx] = unique(x,'rows');
ynew = accumarray(idx(:),y(:));
hold on
bar(xnew,ynew);
hold on
title('X-Ray');
xlabel('E (kEV)');
ylabel('Yıllık Kullanım Yüzde Miktarı (mCi)');
grid minor
and here how it looks when I run it![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/760556/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/760556/image.png)
I couldn't figure out the reason. Any help is appreciated. Thanks in advance.
2 Kommentare
Walter Roberson
am 7 Okt. 2021
As outside observers, we do not know that any of the ynew values are non-zero and not nan.
min(x), max(x)
min(y), max(y)
min(ynew), max(ynew)
Akzeptierte Antwort
Prateek Rai
am 9 Okt. 2021
To my understanding, you are trying to plot a bar graph with duplicate x values bur bars don't appear.
I think the problem is that the y values for duplicate x values are summing up to zero which is why you are not able to see the bars.
I will illustrate this with your example but with some arbitrary values.
x=[7,1,2,3,1,4,5,1,2,3,7,7,]';
y=[1,1,2,3,4,5,6,7,8,9,0,-1]';
I am using arbitrary x and y values here such that:
- We have duplicate x values
- We have duplicate x = 7 such that corresponding y value sums to 0 ( x = 7 y =1 , x = 7 y =0, x = 7 y = -1 ==> x = 7 y = 0)
Now, I will use a code similar to the code provided, and let's look at the possible bar graph.
clc
close all
x=[7,1,2,3,1,4,5,1,2,3,7,7,]';
y=[1,1,2,3,4,5,6,7,8,9,0,-1]';
[xnew,~,idx] = unique(x,'rows');
ynew = accumarray(idx(:),y(:));
hold on
bar(xnew,ynew);
hold on
title('X-Ray');
xlabel('E (kEV)');
ylabel('Yıllık Kullanım Yüzde Miktarı (mCi)');
grid minor
You can see the resultant plot in the attachment.
It is clear from the plot that we cannot see a bar for the case when x=7 because at that time the corresponding y sums to 0.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Whos finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!