11

Say I had some good reason to use, for example

SetOptions[Plot,ImageSize->500, LabelStyle->OutrageousPink];

But now sometime has passed, life has changed, and I changed my mind. I don't remember which options I have set for plot, let alone what their default values were. Is there a way to "undo" this?

PS: I know that I can save in advance all the options with plotOptions=Options[Plot], but this requires thinking ahead, which I'm obviously trying to avoid...

user64494
  • 26,149
  • 4
  • 27
  • 56
yohbs
  • 7,046
  • 3
  • 29
  • 60

2 Answers2

10

I saw this somewhere else on here, but I cannot remember where. The simplest method is to use a fresh kernel:

SetOptions[Plot, Axes -> False];
LaunchKernels[1];
ParallelEvaluate[Options[Plot, Axes]]
(* {{Axes -> True}} *)

then you dispose of the kernel

CloseKernels[]
(* {KernelObject[1, "local", "<defunct>"]} *)
rcollyer
  • 33,976
  • 7
  • 92
  • 191
2

Another option is to use LocalSubmit. Here's a function to do this:

originalOptions[sym_, option_] := Module[{res},
    TaskWait @ LocalSubmit[
        Options[sym, option], 
        HandlerFunctions -> <|"TaskFinished" -> ((res = #["EvaluationResult"])&)|>
    ];
    res
]

Then:

SetOptions[Plot, Axes->False];
originalOptions[Plot, Axes]

{Axes -> True}

Carl Woll
  • 130,679
  • 6
  • 243
  • 355