1

I want to define a function like

AxisScaling[Plot] = {Identity, Identity};
AxisScaling[LogPlot] = {Log, Identity};
AxisScaling[LogLogPlot] = {Log, Log};
AxisScaling[ListPlot] = {Identity, Identity};
AxisScaling[ListLogPlot] = {Log, Identity};
AxisScaling[ListLogLogPlot] = {Log, Log};

except more programmatic. Looking at the manual suggests that I might want to somehow determine the default value for ScalingFunctions for each of these, and looking at G @@ ListPlot[{1}] vs G @@ ListLogPlot[{1}] vs G @@ ListLogLogPlot[{1}] suggests that I might want to look for Charting`ScaledTicks in Ticks, or perhaps at Method->CoordinatesToolOptions->DisplayFunction (or perhaps CopiedValueFunction?). What's the right way to extract this information? (The ultimate reason I want this information is for How to get Callout and Text[...,Offset[...]] to use the same coordinate system in Mathematica 12?, to transform the coordinates from the Text in a plot output into coordinates I can input into Callout, so if it helps AxisScaling can take in the output of the plot function instead of the function itself.

Jason Gross
  • 589
  • 2
  • 10
  • 1
    I need to understand your objective. Are you trying to find out what scaling has been applied to a plot or just what the function name was that made the plot? The function name tells you the form of the axis used in a plot. – Hugh Jan 07 '21 at 12:01
  • I'm trying to find out what function to apply to the coordinates used in Text inside a Graphics object so that I can pass them to Callout inside the plot-function that generated the Graphics object and have them show in the correct place. I eventually went for ("CopiedValueFunction"/.("CoordinatesToolOptions"/.(Method/.Options[G]))) for G the graphics object, but I'm open to better solutions if there are more correct ways to do this. – Jason Gross Jan 10 '21 at 02:37

1 Answers1

1

I found that defining

AxisScaling[G_]:=("CopiedValueFunction"/.("CoordinatesToolOptions"/.(Method/.Options[G])))

works pretty well when I pass the output plot as the argument to AxisScaling.

Jason Gross
  • 589
  • 2
  • 10