在Mathematica中为所有2D绘图启用帧

时间:2015-01-27 23:21:33

标签: wolfram-mathematica

要将所有2D绘图设置为选项Frame->True,我将以下内容添加到我的" init.m":

(SetOptions[#, Frame -> True]&)/@{Plot,ListPlot,ListLinePlot,LogPlot,LogLogPlot,LogLinearPlot};

这看起来很尴尬,我从未在列表中找到所有不同的情节。

我是否有更简单/更好的方法来设置这些选项 en masse

谢谢!

1 个答案:

答案 0 :(得分:0)

这会查找名称中包含PlotFrame选项的所有内置内容:

 Select[Symbol /@ Names["System`*Plot*"] , 
         MemberQ[Options[#]   , Frame -> _] & ]
{ArrayPlot, BodePlot, CommunityGraphPlot, ContourPlot, \
DateListLogPlot, DateListPlot, DensityPlot, DiscretePlot, GraphPlot, \
LayeredGraphPlot, LineIntegralConvolutionPlot, ListContourPlot, \
ListCurvePathPlot, ListDensityPlot, ListLineIntegralConvolutionPlot, \
ListLinePlot, ListLogLinearPlot, ListLogLogPlot, ListLogPlot, \
ListPlot, ListPolarPlot, ListStreamDensityPlot, ListStreamPlot, \
ListVectorDensityPlot, ListVectorPlot, LogLinearPlot, LogLogPlot, \
LogPlot, MatrixPlot, NicholsPlot, NyquistPlot, ParametricPlot, Plot, \
PolarPlot, ProbabilityPlot, ProbabilityScalePlot, QuantilePlot, \
RegionPlot, ReliefPlot, RootLocusPlot, SingularValuePlot, \
StreamDensityPlot, StreamPlot, TreePlot, VectorDensityPlot, \
VectorPlot, WaveletListPlot, WaveletMatrixPlot}

所以你可以简单地使用你的方法:

 SetOptions[#, Frame -> True]&/@Select[Symbol /@ Names["System`*Plot*"],
   MemberQ[Options[#]   , Frame -> _] & ];

如果您要扩展到名称中没有Plot的内容,则需要使用Quiet,因为当您请求选项时,少数符号会发出警告:

      Select[Symbol /@ Names["System`*"] , 
             MemberQ[Quiet@Options[#]   , Frame -> _] & ]

公平警告我不知道更改所有内容的默认值的后果..