【问题标题】:Enable Frames for All 2D Plots in Mathematica在 Mathematica 中为所有 2D 绘图启用框架
【发布时间】:2015-01-27 23:21:33
【问题描述】:

要将所有 2D 绘图设置为具有选项 Frame->True,我在“init.m”中添加了以下内容:

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

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

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

谢谢!

【问题讨论】:

    标签: wolfram-mathematica


    【解决方案1】:

    这会查找名称中包含 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、\ 对数图、矩阵图、尼科尔斯图、奈奎斯特图、参数图、图、\ 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 -> _] & ]
    

    公平的警告我不知道更改所有这些东西的默认值的后果..

    【讨论】:

    • 谢谢!这个答案也教会了我一些关于系统的知识!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 2015-11-18
    • 2023-03-31
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2011-09-22
    • 2011-05-06
    相关资源
    最近更新 更多