DataViz in Python: Chernoff Faces with Matplotlib

As promised previously, here is my effort towards drawing Chernoff faces as cute as they were in the original paper.

Isn’t that just the cutest? Code here.

My replication was greatly aided by a graphic that I call “the missing figure”, which I found on a website that has since disappeared. It helped me understand what Chernoff’s paper was talking about when it says the corner of the face:

Here are a few other ways to look at it:

Varying one parameter at a time:

Lots and lots of random faces:

Making that figure reminds me of a wonderfully vintage quote from Chernoff’s 1972 paper:

“At this time the cost of drawing these faces is about 20 to 25 cents
per face on the IBM 360-67 at Stanford University using the Calcomp
Plotter. Most of this cost is in the computing, and I believe that it
should be possible to reduce it considerably. ”

I’d pay $250 for a beautiful plot of that last figure. But it is nice that the price has come down.


Filed under dataviz

5 responses to “DataViz in Python: Chernoff Faces with Matplotlib

  1. I too would pay for that plot. I got a TSP plot done by Great Big Canvas ( that is hanging in my study: they did a great job! How detailed can you get the “lots of random faces” graphic?

  2. kjforeman

    Adorable! Send your favorite to a CNC router.

  3. Ooh, good idea @miketrick! It starts out life as a vector graphic, so I can get it as high resolution as I have memory. What did you send in for your TSP plot?

    kjforeman: or to my neighborhood laser cutter for a rustic burnt wood style!

  4. Pingback: Same Chernoff | Healthy Algorithms

  5. Pingback: NumPy Cookbook chapter 9