A frequency distribution organizes raw, unordered data into a table that shows how often each value — or range of values — occurs. It's the first step in almost every introductory statistics workflow, turning a wall of numbers into a summary you can actually read, chart, and draw conclusions from.
Ungrouped vs. grouped data
Ungrouped frequency distributions list every distinct value in the data set alongside how many times it occurs. They work well for small data sets or data with a limited number of repeated values — like counting how many students scored each possible grade on a 10-point quiz.
Grouped frequency distributions instead sort data into equal-width ranges (classes), which is essential once the data spans a wide range of mostly-unique values — like test scores out of 100, ages in a population, or continuous measurements. Grouping trades some precision (you lose the exact value of each data point) for readability.
Choosing the number of classes
Too few classes and the distribution hides useful detail — everything gets lumped into one or two bars. Too many classes and the distribution becomes noisy, with many classes containing only one or zero data points. Sturges' rule (k = ⌈log₂(n) + 1⌉) and the √n rule (k = ⌈√n⌉) are two widely-taught starting points, both of which scale the class count with the size of the data set.
Neither rule is a hard requirement — they're heuristics. If your histogram looks too flat or too spiky, adjust the class count up or down and see how the shape changes.
Reading relative and cumulative frequency
Relative frequency (f / n) reframes each class's count as a share of the whole, which makes it possible to compare data sets of different sizes. Cumulative frequency tracks a running total through the classes, answering questions like "how many data points fall at or below this value?" — the foundation for computing percentiles and quartiles from grouped data.
Limits and edge cases
Grouping data into classes is a summary, not a substitute for the raw data — once grouped, the exact value of each data point within a class is lost (which is why class midpoints are used as an approximation for further calculations, like estimating the mean of grouped data). For very small data sets (under ~10 values), consider using Ungrouped mode or reporting the raw values directly, since grouping small samples can obscure more than it reveals.