2011-06-08 52 views
2

是否可以更改圖形對象的選項?說你是一個圖形對象的工作作爲G2D在下面的圖片Mathematica:更改圖形對象的選項

Sample

您可以從G2DInputFormPlotRange選項設置爲{{-0.025,1.025},{0,1.05}}看到。但後來在代碼中,我決定將PlotRange選項更改爲不同的選項。 InputForm會發生什麼情況?新的選項只是附加。

您可以使用OptionsAbsoluteOptions獲取圖形對象設置的選項,但我還沒有找到更改這些選項的方法。功能SetOptions看起來像是一個可能的候選人,但事實證明,這個功能只適用於流和功能。也就是說,它只允許設置它們在示例中顯示的默認行爲。

回答

6

如果您想要清除圖形中的一組選項,則可能最容易重新構建圖形。你可以用First提取圖形的主體,並使用DeleteDuplicatesOptions得到的選項簡化列表:

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] 

我用Options因爲選項Graphics可以,但並不總是,列在一個列表中,並且Options將使表格標準化。

我也想指出,技術上Show是預先選擇的值,所以重複的選項並不真正傷害任何東西,雖然他們可以使它更難以調試圖形輸出和略微增加文件的大小。

enter image description here


您也可以使用SetOptions更改默認值所有顯卡:

SetOptions[Graphics, Background -> Gray]; 

Graphics[Disk[]] 

enter image description here

+0

佈雷特,我不知道你是否注意到了,但至少在照片中,我在原始文章中使用了Show。我遇到的問題是,您正在定義的新選項僅僅被附加到列表中。如果您在我的圖片中注意到,在上次使用InputForm時,選項PlotRange將被包含3次。我想要的是一個清晰的定義,說明PlotRange是什麼。 – jmlopez 2011-06-08 14:50:14

+0

啊,我明白了。圖片中的文字很小,所以我沒有仔細閱讀。我會更新答案。 – 2011-06-08 15:00:21

+0

我有點困惑,你是第二次編輯你的答案還是你要再次編輯它?無論如何,我發佈了一個SetOptions的鏈接,它不能解決問題。我需要確保在使用InputForm時只能看到一個選項的一個實例。 – jmlopez 2011-06-08 15:11:05