Some comes down to power hierarchy too. Presenting up, I'm much more likely to try to appear professional. Presenting down, I go for approachable.
 maybe you could make this argument for a language like Chinese. At least for characters with semantically meaningful radicals.
Err, actually they do. If not the line itself, the font's overall design does. A font can look casual, another official, fun, etc.
In fact this very post uses the "Humor Sans" font for the graphs for exactly this very reason. To make labels appear more casual.
It helps because it focuses attention on higher level elements over nitpicking on details
For xkcd plots, it is clear that someone put an extra effort in making it look sketchy.
Also, it's kind of a shame that matplotlib is still so deeply ingrained in the Python data ecosystem.
A plotting library focused on useability should let you specify what you want in a declarative manner, then get out of your way. Ggplot2 being the prime example.
Don't get me wrong, the general concept is great. Shareable, interactive code snippets are awesome. But for a demo article like this I want a single python file that I can run and immediately see the results. I don't want to have to spin up a jupyter or pylab instance (I've never used pylab so not sure if it works the same EDIT: pylab is analogous to matplotlib, not jupyter. lesson learned). I just want to run the damn code.
On a bit of a tangent here but I also hate the way Jupyter makes git diffs absolutely unusable.
Now, the above being said, the fact that sites like Github have native Jupyter functionality is awesome. It'd be a lot less painful if they'd (the author) have linked to a repo that we (I) could run.
For example, first I copied the initial code snippet that defines the xkcdify function. Then I ran it with python3, and realized it needed python 2 due to the urllib2 dependency (this is not a big deal since the article is from 2012). Then I ran it again with python2, and realized I don't have numpy/scipy etc installed for python2, so I pip installed those. Then I copied in the following code snippet that generates the plot. I then ran it again, and it still didn't work. Finally after a brief google search, I realized I needed to put pylab.show() at the end since I didn't have the %pylab inline or whatever that command is since I'm running it with "pure python".
Honestly, it really wasn't _that_ much effort, but I vastly would prefer to have a demo like this given as a single python file, with the dependencies clearly specified in the blog post.
Video of talk: https://www.youtube.com/watch?v=7jiPeIFXb6U
Last year I found the template that makes everything look hand-drawn. It changed the way my brain saw the diagram, going from “this thing must be absolutely pixel perfect” to “this is something I literally sketched on the back of a napkin”.
This allowed my brain to create the thing, without worrying about whether everything was lined up just so. Then, at the end, I can choose to flip the theme back to straight edges, and line everything up if I choose.
Actually, many times I just left it as it was. Others seemed to like the hand-drawn look, which came as a surprise.
In a same vain: when producing content using latex ( in the eighties ) I had a problem that papers under construction looked way to good ( lie as if was printed) ; in order to counter the good looks of the printed paper I choose to use a typewriter like blurred ink dropped font to ensure that what was printed was a draft and still under construction; producing graphs that show intent but not precision is very useful.
Now it is built-in matplotlib: https://matplotlib.org/api/_as_gen/matplotlib.pyplot.xkcd.ht...