Skip to content

Latest commit

 

History

History
212 lines (161 loc) · 14.8 KB

README.md

File metadata and controls

212 lines (161 loc) · 14.8 KB

Explaining scientific findings through figures in publications, presentations, and posters

Nataliya Rokhmanova* · Andrew K. Schulz* ·

* designates equivalent contributions to this GitHub repository. The above logo can be found here.

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

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:

The .png, .svg. and .pdf versions of this figure, as well as each sub-figure (Fig.1-4) can be found here.

Figure Assessment Rubric

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 .png, .svg. and .pdf versions of this rubric can be found here.

Quick Links and FAQs

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 here.

Inkscape 101

Installing Inkscape

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 In this workshop, we explain how to take a plot exported from MATLAB or Python as an .svg, 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 photograph as a guide.

This guide assumes a basic understanding of Inkscape commands. The tutorials on the Inkscape website are a good place to start.

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 discussion thread 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 this 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:

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.

  1. 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 show "All images" if you are using a PNG or JPEG.
  2. Because we are only using the image as a reference, it doesn't need to be high-definition. Feel free to select "Blocky" for the Image Rendering Mode.
  3. Select the "Pen Tool" and use it to trace around the object you are using, making sure you connect the end of the trace to the beginning node. In this first stage, you are just roughly creating the outline; we will make the line trace smooth and accurate later. (Today, I am tracing a coffee cup, so I will trace the outline of it first, then create a separate trace to make a hole that will make the handle visible.)
  4. After you have roughly traced the outline of the shape, use the Node Tool to edit the curvature so that it matches the reference underneath.
  5. Next, trace the hole of the handle in the same way. When you're done, select both the main trace and the handle hole trace (hold down Shift to select both) and go to Path -> Difference. This will "delete" the hole, leaving you with just the outline of the cup and its handle.

Here is what the plot might look like, with a small vector graphic of a coffee cup representing a "standard" cup size:

Teaching Materials

We learned a lot while planning and executing this workshop. Some tips on how to run your own tutorial will be coming soon. If you want to share this content with your colleagues by holding your own tutorial, we will provide the following teaching materials:

  • Syllabus for a one or two-hour workshop on Scientific Figures with a timeline, learning objectives, and handout list.
  • Slides for a one or two-hour workshop included both as Powerpoint (.pptx) and PDF (.pdf) file types.
  • Detailed presentation lesson plan explaining the content and flow of each individual slide and contains references of figures highlighted throughout. Lesson plan contains references to several open-access publications which are listed in the BIBTEX file
  • Slido poll questions template to download and embed in your own workshop presentation. Link for the Slido poll questions is here.

Citation

@misc{rokhmanova_explaining_2023,
	address = {Scientific Figures},
	title = {Explaining scientific findings through figures in publications, presentations, and posters},
	author = {Rokhmanova, Nataliya and Schulz, Andrew K.},
	howpublished = {Workshop at the International Max Planck Research School for Intelligent Systems (IMPRS-IS) Fall 2023 Bootcamp},
	year = {2023},
}

License

See the LICENSE file for more information.

Open Source

All items in this workshop are open-source and follow the ten definitions of Open Source included on https://opensource.org/osd/

These items can be shared with lab groups and departments, and all files are accessible to be shared.

Acknowledgements

Many parts of this workshop reference a previous GitHub made by co-presenter NR: FiguresDemo2022. The QR code for the logo and this GitHub repo were made using the Python tutorial from sahil_rajput: PythonQR. For the figure spectrum, we utilized a Kaggle data set: Eurovision Song Contest scores 1975-2019. We thank J. Burns for his assistance in preparing the content for this GitHub. Finally, we thank all of the authors and contributors to Inkscape who are listed here.

The authors thank the International Max Planck Research School for Intelligent Systems, IMPRS-IS for supporting NR and AKS. The authors thank Brooke Christensen, Shashank Tripathi, the authors of the BITE paper including Nadine Rüegg, Shashank Tripathi, Konrad Schindler, Michael J. Black, Silvia Zuffi as well as Kelley Gordon of the Nielsen Norman Group, for their contribution of materials utilized in making these resources. Thanks to Katherine J. Kuchenbecker for support and feedback.

Contact

This code repository was implemented by Nataliya Rokhmanova and Andrew Schulz.

Give a ⭐ if you like.