6

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!)

Karolis
  • 1,639
  • 1
  • 12
  • 25

1 Answers1

8

I'll share what I already have:

ListPlot[Sin /@ Range[0, 4 Pi, 0.3],
 FrameLabel -> {"angle", "amplitude"},
 PlotMarkers -> CustomMarkers[6, 8, Orange],
 (*theme*)
 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.

Karolis
  • 1,639
  • 1
  • 12
  • 25
  • +1. However, there are errors when trying the example of OListPlot in v10.3&10.4. – luyuwuli Mar 15 '16 at 06:49
  • There warnings sometimes, but it should work. What is the error you are getting? – Karolis Mar 16 '16 at 17:07
  • 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 CustomTicksand 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; ` – luyuwuli Mar 19 '16 at 07:37