I am in a pursuit of perfection for scientific plots. The aim is to have best clarity of complex data that looks amazing when published.

Please share your tricks and code for Scientific plots in Mathematica. Also, share the reason why you like it (knowledge creates progress!)

  • 2
    $\begingroup$ I use SciDraw for publication figures. It's more work to set up figures than with standard Mathematica, but in exchange you get more control and high quality multipanel figures. $\endgroup$
    – Szabolcs
    Sep 6, 2015 at 13:20
  • $\begingroup$ How can we make publication-quality PlotMarkers without version 10? $\endgroup$ Sep 6, 2015 at 15:48
  • $\begingroup$ Do you want plots for journal and report publications or for data projection onto a lecture theatre screen? $\endgroup$
    – Hugh
    Sep 6, 2015 at 17:46
  • $\begingroup$ @Hugh, for report and publication. But I also use the same plots for presentations $\endgroup$
    – Karolis
    Sep 6, 2015 at 19:28
  • $\begingroup$ @karolis I would suggest that for presentations you need a font size of 24 pts while for publications it is 12 pts or less. There are also issues of resolution and colour. $\endgroup$
    – Hugh
    Sep 6, 2015 at 19:34

1 Answer 1


I'll share what I already have:

ListPlot[Sin /@ Range[0, 4 Pi, 0.3],
 FrameLabel -> {"angle", "amplitude"},
 PlotMarkers -> CustomMarkers[6, 8, Orange],
 Frame -> True,
 FrameStyle -> Directive[GrayLevel[0], 13, FontFamily -> "Helvetica Neue", 
                AbsoluteThickness[1.0`] ], 
 FrameTicks -> {{LinTicks, LinTicks[#1, #2, ShowTickLabels -> False] &},
  {LinTicks, LinTicks[#1, #2, ShowTickLabels -> False] &}},
 GridLines -> None,
 ImageSize -> 350

This produces:

Science plot

Comments about this style:

  • Always use frame: the data range is clear with a quick glance and also ticks on both sides allow to read values in the plots accurately.
  • Black and thicker flame lines: for clarity in print.
  • Bigger font size with a standard modern font: especially important for presentations because small fonts are illegible from distance.
  • One minor tick in interval: less distracting and cleaner look. Especially important when frames are in black.
  • Custom markers: for plots with many overlapping data sets.

The tick and marker libraries are available on github.

  • $\begingroup$ +1. However, there are errors when trying the example of OListPlot in v10.3&10.4. $\endgroup$
    – luyuwuli
    Mar 15, 2016 at 6:49
  • $\begingroup$ There warnings sometimes, but it should work. What is the error you are getting? $\endgroup$
    – Karolis
    Mar 16, 2016 at 17:07
  • $\begingroup$ Sorry fo my late reply. I figured it out where is wrong. I create a folder KPlots, which contains all of the .m files, then I put this folder to $UserBaseDirectory/Applications/. When the package is loaded, it complains that CustomTicks` and CustomMarkers` can't be found. Even though one can solve this problem by putting all the files directly under Applications/ , however, I still suggest you to change the initialization in KPlots.m to handle the case. I temprorally change the first line to be ` BeginPackage["KPlots"]; <<KPlotsCustomTicks; <<KPlotsCustomMarkerss; $\endgroup$
    – luyuwuli
    Mar 19, 2016 at 7:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.