Remember the cardinal rule about bar charts and axis scales? Because we judge the values in a bar chart by the lengths of the bars, not by the positions of the ends of the bars, the axis scale must include zero. By chopping off the bottoms of the bars, we increase the resolution of the chart, but we distort the apparent values encoded by the bars. I’ll repeat:
The value axis of a bar chart must include the value zero.
We saw how Microsoft, at least the PR department responsible for the online tutorials, didn’t understand this rule in Misguided “Professional” Charting Tutorial. In addition to encouraging us to use excessive gradients in the fills of a bar chart (and to use 3D bar charts), the tutorial instructed us to start the vertical axis above zero. The reasoning was to illustrate the differences between the values, but the axis minimum was only changed from 0 to 50, while the maximum remained at 400. So we gained hardly any improvement of resolution, while still getting substantial distortion of the smaller numbers.
Another department at Microsoft has done it again. This time it’s the Internet Explorer team, blogging about the improved performance of IE9, in Browser Power Consumption—Leading the Industry with Internet Explorer 9. The blog post includes several bar charts, and all suffer from the don’t-start-at-zero problem.
In the first analysis, this chart was used to compare browser power consumption when viewing a single blank page. This is actually the total power consumption of the system when the only thing running is the operating system and a browser navigated to about:blank. Here is my recreation of the original chart; the original chart did not include System Idle (with no browsers running).
Your first impression, a false one, is that Opera 11 is quite a power pig, using twice as much power as IE 9, Chrome 10, and Firefox 4, and that Safari 5 is nearly as bad. But when you notice the scale starts at 10 and reaches to 12, you might just realize you’ve been deceived.
The vertical axis here has unreadable minor tick spacing, because I based it on the original chart.
When the chart is redrawn and the axis now includes zero, we see that there is not much difference between browser power consumption. Sure, Opera and Safari are higher, but not by too much. The difference between Opera and IE is less than 6%, not around 100%.
What if you do want to focus on the relative values? Since the markers in a line chart encode values based on their position along a scale, we could use a line chart.
The problem with a line chart in this case is that the lines imply a trend between the categories, and there really isn’t a meaningful order of categories over which a trend would be meaningful. I guess we could sort by software version number (Firefox 4 through Opera 11), but this isn’t very meaningful either.
Perhaps a better value to track is the increase of power consumption when a browser is being used. In this chart I’ve replaced the discrete System Idle bar by a background that’s shaded up to the System Idle value.
That doesn’t give us the resolution we need. So I changed my X axis minimum to 10.529, the power consumption at System Idle with no browser running. Our axis doesn’t start at zero, but it does start at a reasonable baseline.
Those axis numbers are not easy to make sense of, so why not just subtract the System Idle value from all of the data, and plot the excess power consumption.
This gives us the resolution we want, while plotting a reasonable value that is zeroed at an appropriate baseline value.
The valid conclusions we reach from this chart are that, under the conditions of these tests, the latest versions of IE, Chrome, and Firefox all use very little power, while Safari and especially Opera use substantially more power. Less power usage means longer laptop battery life. You can follow the Microsoft article and repeat this analysis for all conditions they evaluated.
Thanks to Robert Kosara, aka @eagareyes, whose tweet this morning brought these charts to my attention.
More Axis Scale Articles
- Calculate Nice Axis Scales with LET and LAMBDA
- Calculate Nice Axis Scales in Your Excel Worksheet
- Calculate Nice Axis Scales in Excel VBA
- Chart UDF to Control Axis Scale
- How Excel Calculates Automatic Chart Axis Limits
- Reciprocal Chart Axis Scale
- Custom Axis Labels and Gridlines in an Excel Chart
- Custom Axis, Y = 1, 2, 4, 8, 16
- Logarithmic Axis Scales
- Link Excel Chart Axis Scale to Values in Cells
- Consistent Axis Scales Across Multiple Charts
- Gantt Chart with Nice Date Axis
- Select Meaningful Axis Scales
- Bar Chart Value Axis Scale Must Include Zero
Calvin Graham says
I’d put them in as/descending order and get rid of the gaps between them so you can see that IE9/FF4/C10 are not the same. Then make each bar a different color and use the same color scheme in the other graphs that are likely to be used nearby like browser speed or install size
Jon Peltier says
Calvin –
Sorting by an appropriate measure is always a good idea. Here’s my chart sorted:
Using colors to mark a common thread across charts can be confusing, but making a panel chart of the data might be a good way to display it for all of the different situations.
Jonathan Stray says
I don’t quite buy the “subtract system idle power” argument. Yes, the new scale only goes up to 0.8, but is 0.8 a little or a lot? And does anyone really care about the *increase* in system power? I think the zero-based chart is the correct one, because a quick glance leads to the correct conclusion: which browser you use makes no damn difference to total power consumption.
Explain to me why I would care about the tiny differences, then show me the magnified chart.
– Jonathan
Phil H says
There’s just one more step to take – change the Y axis units from absolute excess power in Watts to relative excess power as a percentage of the idle power consumption. If my browser makes my power consumption go up by 0.5W, is that a problem? If that represents 2% I don’t really care. The Y axis units are arbitrary at present – we don’t know all the details of the system they used, and nor do we care. We want to know if it affects us. Would IE9 reduce my power consumption by enough of a margin to be worth the switch? That’s the motivating question, and I’m afraid it still isn’t answered by the final graph.
I’ve whipped up a quick graph here: http://www.things.org.uk/examples/idle_vs_news.png which shows the idle battery life versus news site battery life for the 4 browsers. The blue line is the battery life without any browsers running. It tells you the real story: you might as well use Firefox 4 (particularly since that’s only beta so far).
Jon Peltier says
I’ve redrawn the chart from my earlier comment, rescling the Y axis to show excess power usage as a percent of unloaded power usage. As pointed out, Chrome, Firefox, and IE show hardly any excess usage, so who cares. Even Opera, at plus 7.2%, isn’t too much of a big deal.
But I only evaluated the first chart in the Microsoft article. Loading a blank page was the least demanding browser situation. When the other conditions were assessed, including a busy news web site and two HTML 5 applications, the excess power usage was substantial, exceeding 200% in a couple cases.
The conclusion would be that IE has made great progress in power usage, but if you’re already using Firefox, there’s probably no reason to switch.
Naomi B. Robbins says
Two comments:
I agree with Jon’s comment that a chart where one judges position is better IF we need to see the small differences but a line chart doesn’t fit the bill since it suggests a trend between categories. The logical chart to use in this case is a dot plot. Jon even has an excellent utility to draw dot plots in Excel.
I disagree with Calvin’s comment to get rid of the gaps between bars. I usually reserve touching bars for binned data such as with a histogram. I’d suggest putting the data in order as Calvin mentioned and then having a very small gap to show that there is not a continuous flow from one bar to the next.
Jon Peltier says
Here is the about:blank data in a dot plot:
This shows all the resolution you need to distinguish the relative values. Unlike a bar chart, you need not include zero and take the resolution hit:
You can include all of the data in the dot plot:
You’re not supposed to connect points with lines if there is no reasonable trend between them, but I find that a light line helps to distinguish the series from each other.
Mardi-Louise van Heerden says
Dude!
Been wanting to send you a gushing and heartfelt email since.. well almost 5 years ago… You have no idea how many times your brilliant solutions have saved my bacon through the years.
Best part is – you just keep giving!
Most valued professional indeed. I hope you receive as much blessing as you give.
Thank you very much.