Histogram in MATLAB

  1. Saladsamurai

    Saladsamurai 3,016
    Gold Member

    I am having some trouble deciphering how to plot a histogram in MATLAB. My main problem is that I want the x-axis labels to line up with the tick marks. I do NOT want the labels centered and under the bars themselves.

    I have been looking into the histc() function here, but have not figured out how to make it plot properly (with bin-edge labels under tick marks).

    Anyone know how to do this?
     
  2. jcsd
  3. Is there any particular reason why you want to offset the tick marks in this way?
     
  4. Saladsamurai

    Saladsamurai 3,016
    Gold Member

    Hi shoehorn. Yes. That is how I think it should be presented :)
    If 10 values fall between 20 and 25, then 20 should be the left mark and 25 should be the right mark and the column should rise up between the 2.

    Like this except that I tried this procedure and it does not work reliably every time.

    I don't know; I guess I must be insane. I have been looking online for hours. I am surprised that nobody else think that they should be plotted like this. I just checked my textbook's solution manual too and they draw them with the bin values centered under the bar. But that is ambiguous to me. Does that value represent the max or min of the interval? And why should one have to go looking for the interval size? Why should they have to calculate it? These are rhetorical questions of course.... I just think that Plots should be crystal clear so the average bear can read them.
     
    Last edited: Jan 31, 2010
  5. Saladsamurai

    Saladsamurai 3,016
    Gold Member

    Can anyone confirm if this is even possible? Thanks!
     
  6. Saladsamurai

    Saladsamurai 3,016
    Gold Member

    I did it in Excel for anyone who cares. It was a PITA, but worth it I think. I will post a guide on how to do it once I complete it.

    [​IMG]
     
  7. hi...
    histogram program will be there which i used...plz try it
    i=imread(image path);
    [r,c]=size(i);
    val=0:255;
    scale=0:255;
    for x=1:r
    for y=1:c
    val(i(x,y))=val(i(x,y))+1;
    end
    end
    figure;
    stem(scale,val);
     
Know someone interested in this topic? Share a link to this question via email, Google+, Twitter, or Facebook

Have something to add?