2011-04-21 93 views
10

昨天,雖然在"Optimally picking one element from each list"問題中增加了一些時間圖,但我還記得我幾年前做過的一個數學組帖子("Keeping plot annotations after regenerating a plot")。保存情節註釋

我很高興地註釋我的情節(手動),當我認爲一些軸標籤會很好。問題是,重新繪製軸標籤的情節會破壞您的手動註釋。

看樣子你可以找到用戶添加一個名爲PIC的情節在這裏:Rest[pic[[1, 1]]],所以如果你再生情節一樣PIC2你能得到你的註釋回來,如果你使用:

Insert[pic2, Rest[pic[[1, 1]]], {1, 1}] 

我記得大衛公園(演示文稿包的作者)強烈反對手動註釋。我自己做了一些程序化標籤,但有時在程序控制下放置標籤太困難了,就像這裏(請注意,我不太喜歡PlotLegends,特別是因爲某些顏色彼此接近):

top-answerers

現在已經太遲了,我的雜草已經扔掉了劇情的原創,但我想知道這個問題目前的狀態是什麼。

  • 有沒有更好的方法來做到這一點?
  • 這種方法有多普遍?它是否適用於所有情節和圖表類型?
  • 它適用於所有版本嗎? (5.2以上)
  • 任何世界資源學院計劃改善處理用戶添加的情節?

順便說一句,在我的數學組發佈的伎倆與上面顯示的和前10名情節中使用的略有不同。雖然原理是一樣的。


EDIT

我把代碼,以使SO數據圖像Mathematica Toolbag上面的一個。

編輯

代碼現在被移到由Brett冠軍更合適的問題:How do I access the StackOverflow API from Mathematica

+3

+100對數圖!我幾乎相信這個問題只是炫耀情節的藉口...... – Simon 2011-04-21 12:42:40

+0

我同意西蒙!你從哪裏獲得數據? – 2011-04-21 12:43:08

+0

@belisarius和@Mark,可能來自[數據資源管理器](http://data.stackexchange.com/),並且只抓住了前10名數學家的回答者。可悲的是,我沒有回答足夠多的問題在那個名單上......感嘆。 – rcollyer 2011-04-21 12:51:31

回答

4

下面是一種方法,雖然有點醜,但似乎可以合理地適用於較小的情節註釋。

在通過Drawings tools添加註釋之後,附加信息將與圖形一起存儲,並且可以通過例如選擇圖形括號和使用Show Expression(Mac上的Shift-Command-E)進行檢查。附加信息通常可以通過剪切和粘貼或使用Cases來挑選,然後可以使用Epilog將其添加到新的修改後的圖中。

例如

Plot[Sin[x], {x, 0, 6 \[Pi]}] 

添加幾個註解給出以下:

enter image description here

分配名稱plotgraphic上述圖像,可產生本新型改性情節添加了註釋如下所示(例如)

Labeled[Plot[Sin[x], {x, 0, 8 \[Pi]}, 
    Epilog -> Rest[Cases[plotgraphic, _List][[1]]]], "Sine Plot"] 

enter image description here

這可能是尷尬的,至少可以說,該方法無疑可以得到改善。這也可能是其他人已經做的事情。儘管如此,它給出了一個情節,註釋是以「編程方式」呈現的,並且由於沒有人提及Epilog,我決定可能值得發佈。

+1

您也不需要指定第一個圖的名稱,而只需將圖像直接複製粘貼到「Cases」命令 – Simon 2011-04-26 09:17:08

+0

@Simon謝謝。這是一個很好的 – tomd 2011-04-26 09:22:47

5

就個人而言,我同意大衛公園,程式除了標註的是優越的。它也可能更強大,並可用於未來版本的Mathematica。我真的很希望看到繪圖工具調色板有所改進,我希望更清楚地看到手動添加的多個註釋會出現在生成的Graphics對象中。如果有惰性HeadAddedAnnotation或一些這樣的,那麼你可以找到所有這些編輯程序通過

Cases[editedPic, _AddedAnnotation, Infinity] 

正因爲如此,我發現自己挖通過圖像的InputForm,我不相信,你的Rest[pic[[1, 1]]]總是會工作,特別是在未來的版本。

+0

這與我在數學組中提出的相同,但我想將它放在一個選項中:圖形[原始繪圖的東西,用戶添加},繪圖範圍 - >自動等等, UserAdditions-> {GraphicsStuff,GraphicsStuff} ] – 2011-04-21 14:47:18