I’ve been working on a project using Matplotlib to “automatically” produce “publication” quality graphs for simple classes of data, such as line plots.
The goal is to produce an appearance that exceeds what can be achieved by just theme changes. It looks better than what can easily be achieved by Matplotlib or common packages (bokeh, Seaborn, etc.).
To do this, I’ve been getting into the weeds. I have questions about design decisions from a development perspective:
-
Does this project and the work involved sound sane, or will I be fighting Matplotlib’s design the whole way?
-
Are there others who have tried such a thing before?
Here’s one example to illustrate:
I’ve been rolling my own “custom X-axis”.
This is because I want to expand the plot beyond what is normally plotted for aesthetic reasons. I haven’t found a reliable, well documented way to do this in the documentation.
So to expand my plot, I add data to both ends.
That is, say, I want to plot 100 points of data from 1 to 100. Instead of a plot from 0,1,2,3,…99, 100. I add in an extra 10 points on either end, so it’s -10,-9,8,…108,109,100.
I then need to roll custom labels for the resulting custom x axis.
There’s more—for example, I’m rolling my own logic for automatic labelling and processing of data related information (detecting if the inputted data is at the minute, day, year level and creating aesthetic labels).
All this work has a nice “bare metal” feel, but I’m also worried this is the path to insanity.
Comments? Has anyone done this before?