How to get a bar plot with unequal bin intervals?

5 views (last 30 days)
How can I show the following bars (bar_heights) with unequal bin intervals (bin_edges)?
bin_edges = [0 5;
5 20;
20 100];
bar_heights = [20;10;30];
bar(bar_heights)
Basically, I would like to see the bar with height 20 starting at xtick 0 and ending at xtick 5, then the bar with height 10 starting at xtick 5 and ending at xtick 20, and the bar with height 30 from xtick 20 to xtick 100.
  1 Comment
Sim
Sim on 1 Mar 2024
Maybe a way, but I am not able to show the last edge of the last bin, i.e. 100:
bin_edges = [0 5 20];
bar_heights = [20 10 30];
bar(bin_edges,bar_heights','histc')

Sign in to comment.

Accepted Answer

Voss
Voss on 1 Mar 2024
Edited: Voss on 1 Mar 2024
bin_edges = [0 5 20 100]; % include the last edge (100)
bar_heights = [20 10 30];
bar(bin_edges,[bar_heights(:); 0],'histc') % append a 0 for plotting the last bin
xlim(bin_edges([1 end])) % set xlim to avoid showing the last (0-height) bin

More Answers (0)

Categories

Find more on Graph and Network Algorithms in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!