Wolfram mathematica Mathematica:更改图形对象的选项

Wolfram mathematica Mathematica:更改图形对象的选项,wolfram-mathematica,Wolfram Mathematica,是否可以更改图形对象的选项?假设您正在使用图形对象G2D,如下图所示 您可以从G2D的InputForm中看到PlotRange选项设置为{-0.025,1.025},{0,1.05}。但后来在代码中,我决定将PlotRange选项更改为另一个选项。InputForm会发生什么情况?新选项只是被附加 您可以使用options和AbsoluteOptions获得图形对象设置的选项,但我还没有找到更改这些选项的方法。该函数似乎是一个可能的候选者,但事实证明 此函数仅适用于流和函数。也就是说,它只允

是否可以更改图形对象的选项?假设您正在使用图形对象
G2D
,如下图所示

您可以从
G2D
InputForm
中看到
PlotRange
选项设置为
{-0.025,1.025},{0,1.05}
。但后来在代码中,我决定将
PlotRange
选项更改为另一个选项。
InputForm
会发生什么情况?新选项只是被附加

您可以使用
options
AbsoluteOptions
获得图形对象设置的选项,但我还没有找到更改这些选项的方法。该函数似乎是一个可能的候选者,但事实证明
此函数仅适用于流和函数。也就是说,它只允许设置示例中显示的默认行为。

如果要清理图形中的选项集,可能最简单的方法是重新构建图形。您可以使用
First
提取图形主体,并使用
deleteplicates
Options
获取简化的选项列表:

old = Graphics[{Blue, Disk[]}];
old = Show[old, ImageSize -> 1000];
old = Show[old, ImageSize -> 500];
old = Show[old, ImageSize -> 250];
old = Show[old, ImageSize -> 100]

InputForm[old]

new = Graphics[First[old], 
  DeleteDuplicates[Options[old], First[#] === First[#2] &]]

InputForm[new]
我使用了
选项
,因为
图形
的选项可以(但不总是)包含在列表中,并且
选项
将标准化表单

我还想指出,从技术上讲,
Show
是在预先设置选项值,因此重复的选项实际上不会造成任何损害,尽管它们会使调试图形输出变得更加困难,并略微增加文件的大小


您还可以使用SetOptions更改所有图形的默认值:

SetOptions[Graphics, Background -> Gray];

Graphics[Disk[]]

Brett,我不知道你是否注意到,但我在我的原始帖子中使用了Show,至少在图片中是这样。我的问题是,您正在定义的新选项只是被附加到列表中。如果您注意到在我的图片中,上次使用InputForm时,PlotRange选项被包含了3次。我想要的是一个清晰的定义,说明绘图范围是什么。啊,我明白了。图片中的文字很小,所以我没有仔细阅读。我会更新答案。我有点困惑,你是第二次编辑答案还是准备再次编辑?无论如何,我发布了一个指向SetOptions的链接,这并不能解决问题。我需要确保当您使用InputForm时,您只能看到选项的一个实例。我刚刚进行了第三次编辑。:-)第二个是展示如何将
SetOptions
Graphics
结合使用。(虽然我一般不建议这样做。)谢谢布雷特。这正是我想要的,现在我可以保持一切清洁。还有一件事,您能解释一下如何使测试表达式检查您是否正在删除重复项吗?