MisleadingCharts
Back to the gallery

The 35 rainless months that a log axis has nowhere to put

Showing the misleading chart

Be the first to star this exhibit

An outdoor-venue briefing we drew plots 140 months of rainfall at Phoenix Sky Harbor straight out of NOAA’s Global Summary of the Month: one station, one field, nothing smoothed, and a logarithmic axis chosen for the honest reason that monthly totals there run from 0.01 in to 5.35 in. The line runs from January 2015 to August 2026 without a break, so the desk plans for rain in every month of the year. But the logarithm of zero does not exist, and 35 of those 140 months had no measurable rain at all. Those rows cannot be drawn, so they are not: the chart plots 105 points, keeps every hundredth of an inch the gauge recorded, and loses a quarter of the calendar. One of its straight segments runs from August 2024 to January 2025, across the longest dry spell in the record — 159 days without measurable rain.

01The claim

Phoenix has not had a dry month in eleven years. Every figure is NOAA’s own monthly total for Phoenix Sky Harbor — one station, one field, one definition — across 140 consecutive months, and every month that had rain is on the chart. Nothing is smoothed, averaged, indexed or rebased, and no month has been dropped for being small: the axis is logarithmic precisely so the small ones stay visible, because monthly rainfall here runs from 0.01 in to 5.35 in, a range of 535 to 1, and a linear axis presses most of the record flat along the floor. The decades are printed on the ticks — 0.01, 0.10, 1.0, 10.0 — so nothing about the scale is hidden. The line runs from January 2015 to August 2026 without a single break. Read-out for the desk: there is no dry season here to plan around. Keep the wet-weather rider in all twelve months of the events calendar, hold the covers crew on a year-round rota rather than a seasonal one, and price the rain contingency into every month’s quote.

02The trick

Everything the slide says about its axis is true, the decades really are labelled, and all 105 values on the chart are the station’s own — and the sentence in the headline is still wrong, because a log axis has no room for a month with no rain in it. The logarithm of zero is undefined. There is no height on that scale, however far you extend it downwards, where a 0.00 in month could be drawn. So it is not drawn — and what happens instead is the tool’s choice rather than the chart’s, which is the part worth knowing, because none of the choices is loud. Matplotlib clips non-positive values on a log scale by default, which sends the line off the bottom of the frame and straight back; ask it to mask them instead and it leaves a visible gap. ggplot2 takes the quietest path of the three: it drops the rows, prints a warning into a console that the reader of the finished picture never sees, and joins what is left. And the commonest route of all is upstream of any library, in the query — a filter added so the log axis would render at all, and never mentioned again. Whichever way the row goes, a line drawn through the survivors is a line with no breaks in it. Thirty-five of the 140 months at Sky Harbor had no measurable rain — a quarter of the record. The chart plots 105 points. It keeps every hundredth of an inch the gauge recorded, because the months it lost added nothing to the published totals, and it loses a quarter of the calendar. Nothing on the picture says so, and the missing quarter is not scattered at random: it is April, May and June, which were dry in 5, 7 and 6 of the twelve Aprils, Mays and Junes on the chart, and October and November, dry in 5 and 4 of the eleven of each that the 140 months contain. (The span is eleven years and eight months, so eight of the calendar months come round twelve times and four of them eleven.) That is a dry season, and the chart drew straight through it. The single worst case is the best illustration. The line runs in one straight segment from August 2024 to January 2025. Underneath that segment lie September, October, November and December 2024, all four at 0.00 in, and the longest dry spell in the record: 159 consecutive days without measurable rain, from 23 August 2024 to 28 January 2025. The spell broke on 29 January with one hundredth of an inch — and that hundredth of an inch is the whole of January 2025’s total, 0.01 in, which the log axis can draw. So the driest stretch in eleven years arrives on the chart as a gentle downward slope towards a point, while the month that ended it is plotted. Seven months in all are drawn at exactly 0.01 in, one damp morning apiece, and each one is a point on the line. There are 18 of these holes, not one, so 18 of the chart’s 104 segments are bridges. And the loss propagates into the arithmetic: 70.28 in of rain across 140 months is 0.502 in a month, but averaged over the 105 months that survived the axis the same rain reads 0.669 in a month, exactly a third higher, because the denominator lost precisely the rows the axis did. This is not a truncated axis, and that distinction matters. A truncation takes the bottom off the range and at least prints the number it starts at; the reader who looks can see what was done. Here the axis starts below every value it draws and labels its decades honestly. What went missing is not a stretch of scale but a row of the table, and no amount of widening the axis brings it back. (NOAA publishes the records; both drawings are ours, and the desk, the read-out and the recommendation on the first are invented.)

03The fix

Draw every month, and say how many you drew. The redraw puts the same 140 months on a linear axis from zero, which the range here does not defeat: 0.01 in to 5.35 in is 535 to 1, the small months are hairlines rather than invisible, and the 35 months of nothing arrive as red marks sitting on the axis where a column of zero height would be. They are the finding, not a gap. Two panels beneath it say what the finding is. By calendar month, the rainless months pile into April, May and June — dry in 5, 7 and 6 of the twelve times each comes round — and again into October and November, which is a dry season with a shape, and precisely the thing an events calendar would want to know. By day, the same station’s daily file gives 381 days with measurable rain out of 4,261, so 91% of days were dry, and six separate runs of over a hundred consecutive dry days, the longest 159. In general: when a series can legitimately be zero, a log axis is a decision to omit part of the data, and it should be taken deliberately or not at all. If the question is about an amount — how much rain, how many minutes of downtime, how many defects — answer it on a linear axis from zero and let the zeros be drawn. Where the range genuinely needs a log axis, give the zeros somewhere to go: a rug or a strip of marks at the foot of the plot, a symmetric-log axis with the start of its linear zone printed in the caption, or a companion panel that counts them. Whatever the choice, print the count of plotted points against the count of rows the way you print a unit. A caption reading “105 of 140 months plotted” would have cost nothing and made the briefing slide harmless, and it is the one line that no charting default will write for you. The same trap waits anywhere a count can be nought and the spread is wide enough to tempt a log scale — outage minutes by service, defects by line, units by SKU, earthquakes by magnitude band, a month with no incidents. The zeros in those series are usually the good news, which is exactly why nobody notices they have gone.