標題: Re: [心得] Legend for Plot without PlotLegend
時間: Wed Jul 6 00:10:56 2011
※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: 標題: [心得] Legend for Plot without PlotLegend
: 時間: Tue Jul 5 09:42:48 2011
:
:
: Mathematica 裡面繪製圖例的函數PlotLegend雖然功能將多,
: 但我個人覺得不是很好用,所以寫了一個比較陽春的函數。
: 如果有什麼其他的建議可以跟我講∼
:
: mylegend[plot_Graphics, legend_List] :=
: Block[{p = plot, l = legend, color, temp},
: (* 擷取色彩 *)
: color = Cases[p, Hue[a_, b_, c_] :> Hue[a, b, c], Infinity];
: (* 配對圖例及色彩 *)
: temp = {color[[#]], l[[#]]} & /@ Range[Length@color];
: (* 建立圖例 *)
: Labeled[p,
: Grid[{Graphics[{#[[1]], Thickness[0.1], Line[{{0, 0}, {1, 0}}]},
: ImageSize -> {24, 24}, AspectRatio -> 8/24, ImagePadding -> 0],
: #[[2]]} & /@ temp],
: (* 指定圖例位置 *)
: {{Right, Top}}]
: ]
:
: 用法:
:
: mylegend[圖形,圖例文字]
:
: p1 = Plot[{Sin[x], Cos[x]}, {x, 0, 2 Pi}]
:
: mylegend[p1,{Sin,Cos}]
:
: ◆ From: 218.173.130.220
: 推 Frobenius:推∼ 07/05 15:33
: 推 xgcj:!! 07/05 16:39
: 推 kichigop:老師你發paper用的圖是直接Mathematica弄出來的嗎? 07/05 19:27
: → kichigop:還是用Origin或Grapher之類的軟體? 07/05 19:27
: → chungyuandye:我只有用Mathematica,轉成EPS也比較方便 07/05 20:18
: 推 Frobenius:請問怎麼用Mathematica轉成EPS?能互轉嗎^^ 07/05 23:30
事實上Mathematica在處理圖形間檔案格式的轉換也是相當方便,
以上面的圖形為例
Export["test.eps",mylegend[p1,{Sin,Cos}]
這時候檔案會儲存到你的home directory,如果你不知道你的Home Directory在哪
Directory[]
這個指令會傳回預設的目錄,萬一你不喜歡預設的目錄,SetDirectory["絕對路徑"]
之後所以的檔案都會儲存到你指定的目錄下。
如果你不想下指令,那圖形選擇起來,滑鼠右鍵->Save Graphics As->
自己要什麼格式自己選
但是在做迴圈時,或是要將現有的檔案轉檔時,一個一個轉就不方便
(*這時候不用到網路找轉檔程式,M@就可以 *)
首先先設定圖檔儲存的目錄,假設目錄的絕對路徑是 ~/test
( Win 應該是C:\\xxx\\,注意是兩斜線 )
(* 設定目錄為test *)
SetDirectory["~/test"];
(* 將副檔名為JPG或jpg的圖檔全部抓出來 *)
data = FileNames["*.JPG" | "*.jpg"]
(* 將JPG檔全部轉成主檔名相同的EPS檔 * )
Export[StringReplace[#,"jpg"|"JPG"->"eps"],Import[#]]&/@data
當然其他格式間的轉換也是沒問題!
--
養花種魚數月亮賞星星
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.220
沒有留言:
張貼留言