Bug introduced in 7.0.1 or earlier and fixed in 8.0.1'

Why does the following plot no use the global PlotMarkers option?

SetOptions[ListPlot, {ImageSize -> Automatic, PlotMarkers -> {"A"}}];

Checking the global options for ListPlot shows that PlotMarkers is set on a global level:

Options[ListPlot, {PlotMarkers}] -> {PlotMarkers -> {"A"}}

If I just feed the ListPlot function all of it global options it plots correctly, but it defeats the purpose of having globally set defaults.

ListPlot[Range[10], Options[ListPlot]]

To my knowledge ListPlot[Range[10]] and ListPlot[Range[10], Options[ListPlot]] should always return the same result but in this case it does not.

I'm running Mathematica on Mac OS X 10.6.8


In version 7 it appears that ListPlot only uses global Options[] that are acceptable to Graphics (probably via FilterRules). You can work around this manually with explicit declaration:

SetOptions[ListPlot, {PlotMarkers -> {"A"}, Filling -> Axis}];

ListPlot[Range[10], Options[ListPlot]]

Mathematica graphics

If you want to make this fix automatic you can do this:


ListPlot[args___] :=
  Block[{$lpOptsFix = True},
    ListPlot[args, Options[ListPlot]]
  ] /; ! TrueQ[$lpOptsFix]
|improve this answer|||||
  • $\begingroup$ Your last suggestion is pretty much going down the same road as I did when constructing the option configuratin manager which I linked to in the comment above. $\endgroup$ – Leonid Shifrin Feb 3 '12 at 21:06
  • $\begingroup$ I never meant any opposition. Just made a note to link things, because I think there is more value when related discussions or techniques presented in various places are linked together. Totally agree on complementarity. $\endgroup$ – Leonid Shifrin Feb 3 '12 at 21:38
  • $\begingroup$ Thank I was looking for something like you ListPlot rewrite. $\endgroup$ – Davorak Feb 3 '12 at 21:48
  • $\begingroup$ @Davorak, glad I could help, and thanks for the Accept. $\endgroup$ – Mr.Wizard Feb 3 '12 at 21:55

Looks like a bug that has been fixed for V8.0.1.

|improve this answer|||||
  • $\begingroup$ Thanks for the heads up about the fix. $\endgroup$ – Davorak Feb 5 '12 at 1:54
  • $\begingroup$ @Brett Champion I just ran into the same problem (I think) in 8.0.4 $\endgroup$ – George Wolfe Oct 21 '12 at 21:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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