Salary and Occupation

Salaries vary across occupations. The charts below show by how much for 800 of them.

At one end of the spectrum, based on 2018 data from the Bureau of Labor Statistics, physicians have a median salary of $200,890 in the United States. In contrast, waiters and waitresses have a median salary of $21,780.

Occupations and Salary

Vertical position represents median annual salary. Bigger circles represent more people. Color represents job category.


While the above gives you an overall picture, it’s difficult to see separate distributions between occupation groups. There’s a lot of green (healthcare practitioners) and blue (management) at the top and brown (food preparation and serving) and red (sales) at the bottom.

But there’s a lot of overlap in the middle. So here’s the same view with occupation groups separated.

Occupation Groups

It’s easier to see the distributions separately. Mouse over for percentiles.


I can’t say there are any surprises.

Management has a high median but also has a wide range, because the position of manager is generic and is relevant to different industries and levels. It’s similar for health practitioners, which includes both pharmacy technicians and surgeons.

Then there are industries such as administrative support and construction, which tend towards lower salaries and a smaller range (but the full ranges show room for growth).

Mostly though, it’s interesting to see the full distributions all at once. You also get a good idea of where you land.


  • The data comes from the most recent estimates from the Bureau of Labor Statistics. There are four levels of occupation categories: major, minor, broad, and detailed. I went with the highest granularity, which is detailed. This is 804 occupations, but I limited it to jobs with at least 500 people. This brought the count down to 800.
  • I prepared the data in R.
  • I made the charts with D3.js.

Become a member. Support an independent site. Make great charts.

Join Now

Learn to Visualize Data See All →

Drawing Squares and Rectangles in R

R makes it easy to add squares and rectangles to your plots, but it gets a little tricky when you have a bunch to draw at once. The key is to break it down to the elements.

How to Make an Animated, Self-Sorting List

You have a list of things that can be ordered by different values. Let them sort themselves out.

How to Make a Dynamic Multi-population Pyramid in Excel

Create better population pyramids that allow for improved comparisons between sexes and populations.

How to Make Better-Looking, More Readable Charts in R

Defaults are generalized settings to work with many datasets. This is fine for analysis, but data graphics for presentation benefit from context-specific design.