I have an unpopular opinion: matplotlib sucks, but it's going to be really hard to improve on it.
I don't think I need to give anyone reasons why it sucks, but the reason it's going to be hard to replace is that it can do so much. You can make other plotting libraries that are way easier to do a small subset of things with, but as soon as you want strange, lower level, customizable things, you start having to build in little hacks and workarounds. If you have enough of these, you'll eventually get mpl.
I wanted to draw something I thought would be simple using matplotlib or seaborn. The components were themselves pretty standard:
1. A combo chart (two y variables: one as a line, one as vertical bars).
2. A facet grid (multiple charts with the same axis definition, with each chart representing a slice of the data).
#1 is easy in Excel
#2 is easy in Matplotlib
So I thought the combination of the two would be easy in Matplotlib. At first, it wasn't easy.
It turns out that, if you try and learn matplotlib by googling examples as and when you need them, you may not build a good mental model of how matplotlib charts work. So you hit a wall when you try to do something for which there's no good example online.
But if you read the documentation (particularly the page linked above), things get much easier and the frustration melts away.
Not to disagree... as a regular matplotlib user, I certainly overlook its quirks in return for what it can do for me. But I think another interpretation is: If you use a complex, flexible library long enough, your recurring themes will eventually evolve into a library that "wraps" the original library.
I get your point, but disagree. I agree mpl is very powerful and you can do almost anything with it, but the biggest problem with mpl is the default behaviour for many things is just plain horrible. Take subplots, axis labels and ticks. By default pretty much any attempt will yield overlapping/obscured labels or way too much whitespace. Tight_layout helps a bit but in my experience you essentially have to manually tweak spacing and margins every time.
Similarly things like traditional x/y plots with a centre axis with arrows are much harder than they should be (it can be done but is really quite a bit of hassle).
And there are lots of other, similar issues. I suspect the OP is correct and it will be very difficult to replace mpl for producing publish quality plots (I think for interactive plots it's much easier and already done), despite it's shortcomings, because it is so powerful.
I agree with your assessment. An important thing that you point out though, is that it takes regular use to get a good functional and flexible wrapper.
I occasionally (once every 4 months or so) have to create some plots for reports or analysis, and they are almost always very weird, dissimilar to previous plots. It always ends up being a huge pain, even if sometime in the past I've done something kind of like them (this is especially true for any kind of dynamic plots).
I've ended up building a pretty easy to modify plotting suite out of DearPyGui. I cannot recommend DPG enough, especially for high throughput or large scale plots. Immediate mode programming is a joy to work with, and it's pretty awesome being able to quickly toggle on and off any dataset in realtime.
I think this is a really valuable way of thinking. Something similar I wish everyone would ask themselves is "why do I have this opinion/belief/etc?" for any topic.
Just like most religious people are the religion that their parents were, most people don't really choose their political beliefs. It's not to say we don't learn justifications for what we believe, but it means that the fact that we believe in one thing over another is somewhat random imo.
Somewhere out there in the US is someone who's pretty similar to me in most ways, they were just born in a part of the country where their default beliefs are different.
And for consistency, I do put more stake in someone's beliefs when they change from their "defaults".
I've done a few small personal projects in d3 and I like it a lot. My biggest gripe though, is that I can't find decent online help for it. It's not popular enough to have its own subreddit/stack exchange. So often when I've been stuck, I end up having to find 5 year old stack overflow threads that work about half the time.
Is there a good community for it I don't know about? Great tool either way though.
Our goal is for Observable to support the D3 community, but we’re not quite there yet in terms of collaboration features (e.g., making it easier to comment and ask questions on notebooks). We do have a nice forum, also: https://talk.observablehq.com
The D3 slack is another place you can ask questions if you don’t want to use Stack Overflow. And you’re always welcome to ask me questions on Twitter, and I’ll try to point you to the relevant example or make a new one.
Honestly, just being careful and catching mistakes. On almost every project I've worked on, I've found a few. When things get big enough, what's the chance that there's not some mistake? Just reviewing through things carefully, with a fresh set of eyes, can often get a few of them.
I'm hoping/wondering if 2020 will be the year there's some sort of real cultural shift in how this is all viewed. We already know about all the research pointing to social media making people generally less happy, but a huge part of the internet/tech economy is just ads and services that... bluntly, don't really add much to the world. And a ton of capital and human effort is going into that.
I had a moment of excitement when Google announced their practical quantum computing breakthrough, then I instantly realized it meant they will just find a way to track me at a quantum level and anticipate my consumer targeting brand preferences 10000x more quickly or something equally as awful.
That's interesting. I just don't think there has been any research into holistically evaluating social networks. AFAIK studies mostly focus on small parts often with the premise to find something negative (e.g. effect of seeing other feeds with success stories).
Obviously a lot of people do in fact derive pleasure and some other benefits or they wouldn't keep using it.
"Obviously a lot of people do in fact derive pleasure and some other benefits or they wouldn't keep using it."
That doesn't follow at all. When I used to use Facebook it was based on an addictive compulsion but each time I used I realized it made my mood worse. My life got better when I stopped using the platform.
I think it's a funny coincidence that he says "Light acts as a medium of information transfer here.", because IMO this article is only a medium of info transfer from the source he links at the bottom (to be fair, at least he links it) without adding much.
I don't think there's anything wrong with making personal blog posts about learning well established concepts, but promoting them is the reason we have a million Medium/etc articles that are just regurgitating a paper without adding anything of substance.
This can really apply to almost everything though, since if I understand you, it seems to be about progress in the face impermanence. The history of science is basically a constant process of things kind of working, then breaking. But overall it goes forward and things are better off for it. In contrast, I find it kind of inspiring.
Is this true? From what I've read about Alpha Zero/etc, in both Go and chess, it's going interesting move sequences that people hadn't considered viable before. That certainly seems like an interesting thing to learn.
Also, sure, you can dismiss it all as statistics. But how sure are you that what's happening with humans isn't in some form? I'd also say that MCTS is something people kind of do too in games: look a few moves deep and try to judge the value of that position, which is definitely more interesting than simple RL/bookkeeping/stats.
No, it isn't. The top humans are much better at Go than they were four years ago, largely due to learning from the new engines. If it were all just about sampling the phase space zillions of times, this would not be the case.
This is interesting to me ... how exactly is this assessed ...?
Do people keep around versions of “alpha go year 2017” and play against it in order to measure human improvement over time?
If the basis for observing improvement has become “I can beat old versions of the ai more reliably than I used to be able to” or if I have learned to beat players who have not studied alpha zero I suppose that’s a form of usefully learning “about go” by analyzing the games played by alpha zero ...
I wonder if we might ever arrive at a point where human vs fixed-year x ai performance at go pretty much stops increasing over time ...?
I admit that I do not have a quantitative measure to support my claim (as you note, constructing one is difficult). But qualitatively:
1) People have learned a lot from new engines: joseki (corner patterns), general strategy (e.g., moves on the side are now considered less valuable, making large moyos (largely empty space loosely surrounded by your stones) is less attractive because AIs have demonstrated that they're more invadable than previously thought) and are able to actually explain the new principles in human terms.
2) All go professionals now play in the new style, to some degree; ones who tried to continue in the old pre-AI style performed badly.
So I am comfortable claiming that human play has improved by learning from the new engines.
I'm not aware of a single "official" name for it that everyone uses, like the Hypermodern style of chess in the early 20th century. In English, people say things "AI-inspired" or "AlphaGo style" (although a lot of the ideas come not from AlphaGo directly but from the public engines that followed in its wake).
I am not sure what you mean by "style", but top chess grandmasters certainly play in a different way today compared to, say, 20 years ago. Current play is much more concrete (less based on general strategic principles) and players are willing to take greater risks for rewards such as material gains, since AIs have shown that there are often many more defensive resources than was previously thought as long as the defender remains tenacious.