A computer is a better artist than I am. If I can tell it what to draw, it will produce attractive results. To make a nice schematic, the hardest part is to tell the computer what I want to draw. Fortunately for us so-called left-brain types prevalent throughout the sciences, a familiarity with scientific software can overcome a lack of artistic talent, allow rapid iteration of a design, and even provide creative inspiration.
Invoking my scientific software skills, I am able to produce elegant figures:
My favourite aspect of a Nature paper is the figure captions. Not the paper’s innovative science. Not the paper’s succinct length. The figure captions. Why? Because the journal’s simple act of bolding the first sentence of a figure caption can force authors to clarify the purpose of the figure. This is one of several seemingly minor formatting issues that ultimately improves a paper’s readibility.
Physics is like sex: sure, it may give some practical results, but that’s not why we do it quipped Richard Feynman. The oceanographer Curtis Ebbesmeyer1 provides a similar, albeit less memorable quote, when describing his early work on water slabs (aka snarks), which had relevance to both military and pollution issues: such practical matters did not interest me. I found snarks fascinating, even beautiful in their own right. The introductions to many scientific papers, however, are framed in terms of practical results. Hence the rhetorical question implied in the title: are the rationale we as scientists publish convenient little white lies, simply a way to validate undertaking the science that we find personally interesting and intrinsically satisfying?
Using Python daily for more than three years as part of my scientific workflow and then abruptly returning to regular Matlab use has made me realise how much better Matlab could be and how evident its idiosyncrasies are. Conversely, while I was aware and noticed that Python makes things simple, it is Matlab’s comparative flaws that really made me come to appreciate just how much has been achieved in the past decade by the community in making Python an indispensable scientific tool.
An aim of this post is to recognize Python’s impressive convenience and versatility. Unfortunately, however, this post more naturally develops by taking the pessimistic approach of highlighting Matlab’s flaws. What follows are several minor, and a few major, annoyances that I’ve noticed on returning to Matlab.
Scientists should invest time in a good text editor: pay the upfront cost of learning to use and customising a single editor for all of your text needs. This may be obvious to programmers, but less so to scientists who may have yet to recognise the benefits of a good editor.
Much scientific analysis and documentation can be achieved with plain text files (e.g., .py, .m, .f, .r, .tex, or .md). The default method to work with multiple file types is to use multiple IDEs (Integrated Development Environments): Matlab for m-files, Spyder or IPython notebooks for python scripts, TexStudio or TeXnicCenter for latex files, RStudio for R, or one of the countless editors for Markdown currently available.
Using a single editor has many benefits over using a range of editors within each IDE:
To allude to a StackExchange thread, The problem with scientific posters is that they look like scientific posters. Defining characteristics include a lack of whitespace, unattractive borders, poor colour use, and poor fonts use. Using a recent scientific poster of my own as a example, I explain how to create a clean, elegant poster with minimal artistic talent.
Scientific papers are built by taking existing ideas, applying them in new ways, adapting them to fit new situations, and improving them over time. Yet when it comes to drawing a schematic, many people start from scratch or never even start. Instead, start with an image search, let Inkscape do the hard work, and refine the best parts of other schematics.
Placing text over a full-size photo is a standard way to create a title slide. But by being everyone’s go-to method, it’s forgettable. Instead, use a photographic triptych: three tall photos spanning the slide.
Here’s a real-life example, the title slide from my most recent presentation:
Vector images are great, except when they shouldn’t be vector. Figures with intricate detail can actually benefit from being rasterized. This can reduce file size and help the figure load more quickly. Python’s Matplotlib has an option to rasterize certain elements, but it doesn’t always work as simply as expected.
This post describes a function that (i) lets you rasterize any chosen elements when you export the figure and (ii) overcomes problems with the current implementation of rasterizing objects with Matplotlib.