I came across SciDraw (link) that can be used for preparing scientific figures with Mathematica. It seems the latest version was in 2015 (link). What are the main problems that SciDraw still solves? Or does Mathematica 12 make much of SciDraw redundant now?
2 Answers
No, it does not make SciDraw redundant. Take a look at the SciDraw examples and try to reproduce them with plain Mathematica. It is going to be more difficult than just using SciDraw.
One of the biggest shortcomings of Mathematica's visualization system is that it can't easily create multi-panel figures. I expect the frames to be correctly aligned in a multi-panel figure. Until Mathematica 12.0, this could not be done automatically, and required setting (and re-setting) the ImagePadding
setting for each panel manually. Matematica 12.0 is better in that it can do this automatically with GraphicsGrid
, GraphicsRow
and GraphicsColumn
. However, it still cannot do nested panels, and it does not have as many options as SciDraw. Nor are the options as easy to apply.
A shortcoming of SciDraw is that it basically forces you to think about all the adjustments one can make to a figure. But in those cases where you need to do this anyway to achieve a sufficient quality, it can do it more consistently and with fewer steps than Mathematica's built-ins.
I would recommend SciDraw when:
You are creating publication figures which must be of high quality, and find yourself fussing with the settings.
You need multi-panel figures.
I would not recommend SciDraw when:
- You need to create figures quickly, and the quality is not a top priority (in particular, you are happy with the automatic defaults).
I also agree that SciDraw is not yet redundant. I still use some SciDraw features, but one I often use the CustomTicks
portion of SciDraw (although this can be installed as a standalone package if you prefer). It was a bit broken for MMA 11, but it seems like Wolfram finally fixed a few bugs in their tick marks coding and now it works again.
While it's possible to create your own tick mark function, I usually find it to be much more of a pain that simply using SciDraw. Quite often I need to increase the length of tick marks for export since MMA makes them much shorter on export. This can easily be done with SetOptions[LinTicks, TickLengthScale -> 2]
.
Similarly, if I want to use outside tick marks SetOptions[LinTicks, TickDirection -> Out]
works a treat. Then I can get away with allowing Mathematica to choose where to put the tick marks, but I can control the length and direction. If I wanted to do this otherwise, my understanding is that I would have to specify the minimum tick mark, the maximum tick mark, the step size between ticks, their labels, how to decide on major tick marks, and the inner and outer tick mark lengths. This is a pain if I just want to change the length or direction, and I'm honestly surprised that Wolfram didn't decide to adopt some of these features into MMA 12, or at least give tick marks a little bit of TLC to make customization easier.