Is it possible to draw a bar plot with percentage lines?
7 次查看(过去 30 天)
显示 更早的评论
Hello!
I'm drawing a bar plot with data from a file, like this. The data is sorted into bars according to the exponent of each value in scientific notation. The code is shown below.
data = sort(data);
s = floor(log10(abs(data)));
x = unique(s);
y = histc(s, x);
figure('Name', file.name);
bar(x, y);
title(file.name, 'Interpreter', 'none');
barvalues;
The plot generated is something like this:
I was looking for a way to draw percentages in the plot, something like this (the percentages are completely made up):
Do you know if this is possible and how it could be done? Thank you so much!
2 个评论
回答(2 个)
the cyclist
2019-9-12
I'm not sure if you are asking for them to be automatically positioned, but there are many options for drawing lines on a plot:
0 个评论
Adam Danz
2019-9-12
编辑:Adam Danz
2019-9-13
Use cumsum() to compute the cumulative sum of each bar height. Then you can normalize it to the max bar height (this is how I interpreted your query but if you need something different, please add details).
Here's a functional demo
y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
h = bar(y);
barcs = cumsum(h.YData);
% Normalize the cumsum to the max bar height
barcsNorm = barcs / barcs(end) .* h.YData;
% Plot lines
hold on
ph = plot([h.XData;h.XData], [zeros(size(barcsNorm)); barcsNorm], 'r-', 'LineWidth', 3);
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!