Group Abstract Group Abstract

Message Boards Message Boards

1
|
15.2K Views
|
7 Replies
|
3 Total Likes
View groups...
Share
Share this post:

Perform simple reformatting of the ticks in a plot?

Posted 9 years ago
POSTED BY: Michael Stern
7 Replies
Posted 5 years ago

Hi, I am interested in this solution too. I would like to use human readable numeric values on my charts, not in scientific notation. I could not find how to do that. I am using Mathematica 12.1.1 Thanks!

POSTED BY: Alan Parson

Hmm, AbsoluteOptions gives useless result with DateListPlot. A workaround is to get the ticks from a ListPlot and to feed them to DateListPlot:

data = {{{2017, 1, 1}, 1}, {{2017, 2, 1}, 2}};
nonDatePlot = ListPlot[data[[All, -1]]];
tks = Ticks /. AbsoluteOptions[nonDatePlot];
modifiedTks = 
  tks[[2]] /. {x_Real, tk_Real, rest___} :> {x, 
     Rationalize[tk/Pi, Pi/10000] Pi, rest};
DateListPlot[data, 
 FrameTicks -> {{modifiedTks, Automatic}, Automatic}]
POSTED BY: Gianluca Gorni

Manually specify the ticks:

mydata=EventSeries@Table[{DatePlus[DateObject[{2010,1,1}],{x,"Month"}],10^6 RandomReal[{1,2}]},{x,0,20}];
rightticks=leftticks = {# 10^6,"$ "<>ToString[NumberForm[#,{\[Infinity],1}]]<>"MM"}&/@Range[1,2,0.1];
rightticks[[All,2]]="";
myplot=DateListPlot[mydata,FrameTicks->{{leftticks,rightticks},{Automatic,Automatic}}]

enter image description here

Using FindDivisions you could automate the position of the ticks. Which is also what internally is used by the various plot functionalities...

POSTED BY: Sander Huisman
Posted 9 years ago
POSTED BY: Michael Stern

You can intercept the automatically generated ticks and then tweak them, for example with a replacement rule. Something like this:

myPlot = Plot[Sin[x], {x, 0, Pi}]
tks = Ticks /. AbsoluteOptions[myPlot, Ticks];
Show[myPlot, 
 Ticks -> {tks[[1]] /. {x_Real, tk_Real, rest___} :> {x, 
      Rationalize[tk/Pi, Pi/10000] Pi, rest}, tks[[2]]}]
POSTED BY: Gianluca Gorni
Posted 9 years ago

This doesn't work with DateListPlots.

POSTED BY: Michael Stern

Currently only semi-manually, like Gianluca proposed...

POSTED BY: Sander Huisman
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard