My statistics book states that:

Special care must be taken with class boundaries when drawing a histogram to represent grouped discrete data.....a continuous scale is used.

Consider the group 0-9. Although it may seem strange, when data are discrete, the lower boundary is taken as — 0.5 and the group 0—9 is represented on a histogram by the interval from —0.5 to 9.5.

It's really confusing to why we have to use a continuous scale with discrete data, can't we just use a histogram but leave a gap between say 9 and the number after it to show that's there's a new interval coming? Second, why do we make the zero negative 0.5

  • 4
    $\begingroup$ Technically, you're exactly right. You should use a bar chart with different bars (usually not touching) to represent ordinal categorical values (e.g., Likert values). However, in many statistical software programs, procedures for making histograms are easier to use than those for making bar charts. So people tend to make histograms. Then it is necessary to specify binning (bar boundaries) for the histogram that so each bar is centered on its own level of the categorical variable. $\endgroup$
    – BruceET
    Sep 27, 2020 at 0:44

1 Answer 1


Bar Plots Preferred to Histograms for Graphical Display of Ordinal Categorical Data

Comment continued with an example:

Here are some 7-category Likert scores simulated, summarized, and graphed in R. Data need to be tabulated for a barplot in R, and histogram cutpoints separating bins need to be specified in order to make a useful histogram.

For categorical data, barplots are the preferred graphical display. Spaces between bars emphasize the discreteness of ordinal categorical values. Histogram bars that touch may give the impression that data have continuous numerical values.

Generate data:

set.seed(2020)           # for reproducibility
prop = c(1,2,3,4,3,3,2)  # proportions for scores; need not add to 1
x = sample(1:7, 100, rep=T, p = prop)  # samples data

Describe data:

 1  2  3  4  5  6  7     # scores
 6  8 20 21 18 16 11     # frequencies

  0%  25%  50%  75% 100% 
   1    3    4    6    7 

Graph data:

par(mfrow=c(1,2))          # enables two panels per plot
 farb = c("maroon", "red", "orange", "khaki", 
          "green3", "cyan3", "skyblue")  # optional colors
 tab.x = tabulate(x)       # tabulate data for plot
 barplot(tab.x, names.arg=1:7, col=farb, 
         main="Barplot of Likert Scores")

 cutp = seq(.5, 7.5, by=1) # cut points for histogram bins
 hist(x, br=cutp, col="skyblue2", 
      main="'Histogram' of Likert Scores")
par(mfrow=c(1,1))          # return to single-panel plots

enter image description here

  • $\begingroup$ Does the same scenario apply to grouped discrete data, too? Or is this for ordinal categorical data only? $\endgroup$
    – Manar
    Sep 27, 2020 at 3:44
  • $\begingroup$ For discrete numerical data either a histogram or a bar chart may be appropriate. Often the choice depends on the number of distinct discrete values, and on whether we want to show a continuous approximation. // So, If I had binomial data, I'd use a histogram and overlay a density function of the approximating normal distribution. Also, if I had Poisson data with counts out to $X = 70$ or $80,$ I might use a histogram with several values to a bin. $\endgroup$
    – BruceET
    Sep 27, 2020 at 4:21
  • $\begingroup$ For ordinal categorical variable, maybe best to use a pie chart, so as to avoid the impression of a nonexistent order among the categories. (In a pie chart the largest category is usually plotted first, then the next most frequent, etc., around the circle.) But If I want to stress that 'Catholic' is--just barely--the predominant religion in the sample, I might use a bar chart so everyone can see that category has the tallest bar. (Can be hard to see small differences in frequenies in a pie chart.) If I want to stress Strongly and Somewhat Pos hugely outnumber Negatives, maybe pie is better. $\endgroup$
    – BruceET
    Sep 27, 2020 at 4:28
  • 2
    $\begingroup$ Overall principle: Think about the data and what you want your readers to understand about it. Graphical displays give instant, sometimes indelible, impressions. If possible, make sure your graphical method makes the main message instantly clear. $\endgroup$
    – BruceET
    Sep 27, 2020 at 4:31
  • 1
    $\begingroup$ OK, I think once data is grouped, then a histogram may be the best (or only) feasible choice. If groups are 10-19, 20-29, make sure labeling is clear so no one thinks its 11-20, 21-30, etc. For any kind of numerical data the bias is already toward a histogram. $\endgroup$
    – BruceET
    Sep 27, 2020 at 4:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.