这会查找名称中包含 Plot 和 Frame 选项的每个内置函数:
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、\
对数图、矩阵图、尼科尔斯图、奈奎斯特图、参数图、图、\
PolarPlot、ProbabilityPlot、ProbabilityScalePlot、QuantilePlot、\
RegionPlot, ReliefPlot, RootLocusPlot, SingularValuePlot, \
流密度图、流图、树图、矢量密度图、\
向量图、小波列表图、小波矩阵图}
所以你可以简单地使用你的方法:
SetOptions[#, Frame -> True]&/@Select[Symbol /@ Names["System`*Plot*"],
MemberQ[Options[#] , Frame -> _] & ];
如果您想扩展到名称中没有 Plot 的事物,则需要使用 Quiet,因为在您请求选项时,少数符号会引发警告:
Select[Symbol /@ Names["System`*"] ,
MemberQ[Quiet@Options[#] , Frame -> _] & ]
公平的警告我不知道更改所有这些东西的默认值的后果..