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