Image credit: New York Times
Except... I don't think it's that great. Granted, I'm heavily influenced by the blog, Junk Charts by Kaiser Fung, and am coming off a bit of a junk chart high after hosting him as a speaker where I work last month :)
Some issues I have with this "best" infographic:
- The polar coordinates artificially scale the durations. Check out Beethoven (toward the outside in yellowish) vs. Simenon (the very center, green). Same sleep schedule, but Beethoven looks like he hibernates every night compared to Simenon's cat nap.
- Why color 12a - 12p in black; half of that is daylight?
- The number of people represented with a unique color is too much to track. Who's little afternoon nap from 3-4p is represented in red? My first glance led my eye to either Milton or Amis, and for some reason I didn't see Darwin buried in there.
- The faces are sort of a neat touch for well known characters (only recognized Franklin and Beethoven myself, but perhaps I'm just un-cultured!), but they just clutter the chart for the rest. There's also only 10/27 shown... how did they choose which were famous enough to display?
- Adding the faces, at least I think, caused them to shift around the labels. When you see the left edge of an arc, sometimes the name is there and sometimes not. For example, I'm thinking Kant, Angelou, and Hugo are pushed to the right simply because Milton's bust is in the way. It would be easier to find the label if it were at the start of the arc vs. having to track it to a different point.
- Similarly, why start Styron anywhere other than at the very left? The reader has to crane his head a bit more to read a vertical/slightly upside-down label vs. making as much of it as possible in almost an upright orientation.
The infographic seems to debunk the myth that geniuses stay up through the wee hours working manically, and that you're more creative when you're tired—most of these 27 luminaries got a wholesome eight hours a night.
That's not all that apparent to me when I look at the chart, primarily because you have to sort of parse out the actual sleep duration from the text (i.e. "10 p.m. - 6 a.m."), not from the arcs.
I decided to give a shot at a [granted, less pretty] re-do by entering the data into my own spreadsheet for plotting with R. At first I tried simple numerical values (sleep: 0, wake: 8 for 12-8am), but it got a bit tricky with respect to accounting for crossing midnight and shifting the axes how I wanted them. I resorted to actual date/time format. Not my favorite thing to muck around with in R, but it wasn't too bad. The data is here if you want to try yourself.
### load libraries
### read in data
data <- read.csv("~/Desktop/sleep-hours-posix.csv")
### convert to POSIXct format
data$sleep_posix <- as.POSIXct(data$sleep, format = "%m/%d/%Y %H:%M:%S")
data$wake_posix <- as.POSIXct(data$wake, format = "%m/%d/%Y %H:%M:%S")
### I wanted to order the names by earliest bedtime
### the way I plotted the night/day rectangle also required a numeric
### value for each name, so I added that after ordering the names
data <- data[order(data$sleep_posix, decreasing = T), ]
data$name <- factor(data$name, levels = unique(data$name, fromLast = T))
data$id <- as.numeric(data$name)
With the data read in, here was my first plot attempt:
p <- ggplot()
p <- p + geom_segment(aes(x = sleep_posix, xend = wake_posix, y = id, yend = id,
group = as.factor(g)), data = data)
p <- p + geom_rect(aes(xmin = as.POSIXct("2015-01-01 22:00:00"),
xmax = as.POSIXct("2015-01-02 06:00:00"),
ymin = 0, ymax = 28),
fill = "black", alpha = 0.35)
p <- p + scale_x_datetime("", breaks = date_breaks("2 hours"),
labels = date_format("%H:%M"))
p <- p + scale_y_discrete("", limits = 1:27, breaks = 1:27,
labels = unique(data$name, fromLast = T))
p <- p + theme_bw()
And the plot:
Again, not as pretty, but I find this easier to interpret. I chose an estimate for "normal sleeping hours" to shade darker (10pm - 6am) instead of AM vs. PM. This was my attempt at picking out "odd" sleep schedules from what one might consider conventional. It's easy to see that Balzac goes to bed extremely early compared to the rest, and that Styron, Flaubert, and Fitzgerald are shifted pretty far to the right. The two nappers are also easily identified. There's no need to add the actual times to each person, and the shaded region (once you know it's 10p - 6a) and the tick spacing also gives an additional reference point vs. necessarily having to always refer to the axes. In other words, Mann is a major tick after both the shaded start and end (12 - 8a).
Or perhaps if the goal is to illustrate that "geniuses" have reasonable bedtimes and sleep durations... who cares who they actually are individually. If this is the goal of the story, perhaps the names could be written in some body text and a simple scatter plot of bedtime vs. duration could be used?
### probably not elegant, but summarizing by name and g to capture the earlier
### bedtime and both durations, and then again by just the name to add the durations
data_sum <- ddply(data, .(name, g), summarize,
bedtime = sleep_posix,
duration = wake_posix - sleep_posix)
data_sum <- ddply(data_sum, .(name), summarize,
bedtime = bedtime,
duration = as.numeric(sum(duration)))
### note the jittering due to overlapping data p <- ggplot()
p <- p + geom_jitter(aes(x = bedtime, y = duration), data = data_sum, size = 3,
position = position_jitter(width = 120, height = 0.1))
p <- p + geom_rect(aes(xmin = as.POSIXct("2015-01-01 21:00:00"),
xmax = as.POSIXct("2015-01-01 23:00:00"),
ymin = 6,
ymax = 9),
fill = "black", alpha = 0.35)
p <- p + theme_bw()
So, there's my attempts at putzing around with other ways to look at this data set. There's probably better ways, but I certainly don't think the linear scale and scatter plot are any worse than the original, which I don't think actually communicates the data/point at all. It's not even that pretty to me due to the hodgepodge of colors, and I think the main thing it accomplishes is looking "interesting from a distance." This is the bummer with a lot of infographics -- they are better at being a sort of piece of artwork as long as you don't start trying to look very closely. Almost like a divergent Magic Eye poster. For it to work you sort of have to stare through it. If you start looking for information in the pixels, you're in for a headache.