ScientificFigures
A comprehensive guide on how to create beautiful scientific figures for technical publications, presentations, and posters
Install / Use
/learn @nrokh/ScientificFiguresREADME
Tip: You can switch between Light and Dark mode in your GitHub profile settings for better readability. This repo has all figures/images included to be nicely viewed in either light or dark mode.
SciFig Learning Outcomes for Users
Learning outcomes for using this repository:
- Participants will learn how to critically review their figures using the provided spectrum of figure development and a figure evaluation rubric.
- Participants will understand what resources are available to help with figure construction.
- Participants will understand differences and key components between creating figures for publications, presentations (including Thesis Advisory Committee meetings), and posters.
Overview of Workshop Items and Handouts
This workshop will include several items and documents for you to use in your figure-making journey. In this repo, we will provide you with the following tools
- Spectrum of Figure Creation
- Figure Assessment Rubric
- SciFigs Helpful Links and FAQs
- Inkscape 101
- Running your own workshop
The spectrum contains multiple figures to help scientists understand the iterative process for creating scientific visualizations. The figures are arranged in the following order:
- Spectrum of Figure Creation
- Figure 1: The worst figure you (hopefully) will ever see. Nobody ever needs to see another figure like this one.
- Figure 2: The same data and the same plot type from Figure 1 are now reworked into a more professional version.
- Figure 3: After careful consideration of the data, this figure combines the two subplots from Figure 2 to create a comprehensive and easy-to-interpret view.
- Figure 4: After careful consideration of the plot type, this series of figures represents the data using a plot type that matches the data type.
- Figure 4a: This is a figure that would be appropriate for a publication, where the reader has lots of time to engage, think, and read fine-print.
- Figure 4b: This is a figure that would be better suited for a poster, which should present distilled content and be readable at different distances.
- Figure 4c: This is a figure that would be best for a presentation, where it complements the content that you are describing verbally as you proceed through the talk.
There is something to learn about each figure, and each lesson is supplemented by the Figure Rubric included in the following section. The Figure Spectrum is previewed below in Light mode:
<p> <p align="center"> <img src="FigureSpectrum/FigureSpectrum.png"> </p> </p> The Figure Spectrum is previewed below in Dark mode: <p> <p align="center"> <img src="FigureSpectrum/FigureSpectrumDarkModeTest.png"> </p> </p>The .png, .svg. and .pdf versions of this figure, as well as each sub-figure (Fig.1-4) can be found <a href="https://github.com/nrokh/ScientificFigures/tree/ad717a0e35d72456f1fbf443395fb6ab542574c8/FigureSpectrum">here</a>.
</details> <h2 align="center">Figure Assessment Rubric</h2> <details>In the Figure Rubric, we highlight six key attributes to help assess figures for presentations, publications, and posters. The six attributes are:
- Scale & Resolution
- Units & Labels
- Colors
- Emphasis
- Ink:Content Ratio
- Accessibility
The rubric shows examples of each attribute done well and done poorly, as well as a few pointers to keep in mind. The Figure Rubric is previewed below in Light mode:
<p> <p align="center"> <img src="FigureRubric/FigureRubric_pg1.png"> <img src="FigureRubric/FigureRubric_pg2.png"> </p> The Figure Rubric is previewed below in Dark mode: <p> <p align="center"> <img src="FigureRubric/FigureRubricDarkModeTestPage1.png"> <img src="FigureRubric/FigureRubricDarkModeTestPage2.png"> </p>The .png, .svg. and .pdf versions of this rubric can be found <a href="https://github.com/nrokh/ScientificFigures/tree/7adb50915035029c4f42836f69965cf805202563/FigureRubric">here</a>.
</details> <h2 align="center">Quick Links and FAQs </h2> <details>We highlight some useful links and frequently asked questions (FAQs) in this handout. There are links for the following resources:
- Poster creation
- Presentations
- Scientific storytelling
- Creating figures for publication
- Open-source figure-crafting tools
The link sheet can be found <a href="https://github.com/nrokh/ScientificFigures/tree/e13819c333c6a333dc4a2dde96fdfe8c264389c4/LinksAndFAQs">here</a>.
</details> <h2 align="center">Inkscape 101 </h2> <details> <summary>Installing Inkscape</summary>Inkscape is a free open-source software licensed under the GPL. To download Inkscape, you can go to their website:
https://inkscape.org/
Additionally, you can directly download Inkscape across all platforms here, or at the following web address for Linux, Windows, or MacOS:
https://inkscape.org/release/1.3/platforms/
Once Inkscape is downloaded, it will automatically be available as an application on your desktop.
</details> <details> <summary>Details</summary> In this workshop, we explain how to take a plot exported from <a href="https://github.com/nrokh/ScientificFigures/blob/3777608834b74cf38e7a80259ed103772b47934a/Inkscape101/coffeeCupPlotting.m">MATLAB</a> or <a href="https://github.com/nrokh/ScientificFigures/blob/77f8846c0996592dd7acffc26bbd8b64ab585337/Inkscape101/coffeeCupPlotting.py">Python</a> as an <a href="https://github.com/nrokh/ScientificFigures/blob/3777608834b74cf38e7a80259ed103772b47934a/Inkscape101/coffeePlot.svg">.svg</a>, import it into Inkscape, and revise it based on the six key attributes listed in the Figure Rubric. We also explain how to create simple vector graphics using a <a href="https://github.com/nrokh/ScientificFigures/blob/3777608834b74cf38e7a80259ed103772b47934a/Inkscape101/CoffeeCup.jpg">photograph</a> as a guide.This guide assumes a basic understanding of Inkscape commands. The tutorials on the Inkscape website are a <a href="https://inkscape.org/learn/tutorials/">good place to start</a>.
Step 1: Load your .svg
After you've saved your plotted figure as an .svg, either in the MATLAB Save File interface, or in Python using:
plt.savefig('figure.svg', format='svg')
you can import your .svg into your Inkscape file by clicking: File -> Import -> and selecting your saved .svg plot. In the pop-up box, make sure you have selected "Include SVG image as editable object(s)" in the current file. For most plot types and most instances, choosing "Blocky (optimizeSpeed) for your Image Rendering Mode will be just fine. Click "OK" and your plot will appear.
Tip for MATLAB users: Saving a figure with subplots as an SVG is notoriously tricky. Refer to this <a href="https://de.mathworks.com/matlabcentral/answers/593113-exporting-a-figure-including-multiple-subplots-into-high-resolution-pdf-or-svg">discussion thread</a> for some guidance.
Tip for Python users: If you would like your text to be editable, use the command plt.rc("svg", fonttype="none"). See <a href="https://stackoverflow.com/questions/34387893/output-matplotlib-figure-to-svg-with-text-as-text-not-curves"> this</a> Stack Overflow discussion for more details.
Step 2: Making your plot elements editable
Regardless of whether you export your image from MATLAB, Python, or somewhere else, you will have to "ungroup" the elements in your plot in order to be able to edit them. Right click on your plot, and select "ungroup" until each of the elements (such as the text, the axes, the data) in your plot is individually editable.
Step 3: Basic figure improvements
Some simple changes to your figure that you can make are:
- Changing the font style or font size
- Increasing the thickness of your axes
- Changing the color of your data by changing the fill or stroke colors
- Changing the stroke style of your lines so that the plots are still interpretable if printed in black and white
- Changing the opacity of your data by playing with the Opacity toggle in the Fill and Stroke tab
- Removing "chart junk" such as unnecessary gridlines or bounding boxes
- Moving the legend to a different part of the plot, where it's not blocking your data
Here is an example of a figure that we edited based on the guidelines in the Figure Rubric:
<p align="center"> <img src="Inkscape101/plotBeforeandAfter.png"> </p>Step 4: Creating a vector graphic by tracing a photo:
This is one of the easiest ways of creating a realistic vector graphic that you can use to supplement your data.
- First, import the photo or image you are using as a reference. Use the Import tool like last time; you might need to change "Files of type" to
