Re: [問題] 如何將兩種不同類形的圖畫在同一張

看板Mathematica作者 (養花種魚數月亮賞星星)時間12年前 (2012/04/17 22:45), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《wope (獨立黑色色彩)》之銘言: : 標題: [問題] 如何將兩種不同類形的圖畫在同一張 : 時間: Mon Apr 16 09:32:43 2012 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 220.133.104.111 : 推 qoodeva:show?? 04/16 10:10 : 推 jurian0101:show 04/16 11:17 : → wope:感謝樓上兩位~~謝謝 04/16 12:01 : 推 qoodeva:可是用show沒辦法去改變線條格式喔 04/17 10:23 : → wope:對了 想請問qoo大 Contourplot的colorbar如何叫出來? 04/17 12:15 : 推 qoodeva:哈哈,你問倒我了,這個我不會XDD 04/17 16:42 color bar colorbarplot[fun_,xrange_List,yrange_List,color_String]:= Block[{tt,myvalue,mycolor,colorbar,myticks,mycolorbar}, (* ContourPlot *) tt=ContourPlot[fun,{x,xrange[[1]],xrange[[2]]},{y,yrange[[1]],yrange[[2]]}, ColorFunction->color]; (* 取出ContoourPlot所有等高線的值 *) myvalue=Cases[tt,Tooltip[pts__,v_]:>v,Infinity]; (* 取出ContoourPlot所有等高線的顏色 *) mycolor=Cases[tt,RGBColor[a_,b_,c_],Infinity]; (* 建立color bar *) colorbar= Flatten[{mycolor[[#+1]],Rectangle[{0,#},{1,#+1}]}&/@ Range[0,Length@myvalue]]; myticks= Transpose[{Reverse@Range[0,Length@myvalue+1], Flatten@{myvalue[[1]]+myvalue[[1]]-myvalue[[2]],myvalue, myvalue[[-1]]-myvalue[[1]]+myvalue[[2]]}}]; mycolorbar=Plot[0,{x,0,1}, Axes->None, Frame->{{None,True},{None,None}}, FrameTicks->{{None,myticks},{None,None}}, Epilog->colorbar, PlotRange->{{0,1},{0,Length@myvalue+1}}, AspectRatio->Length@myvalue+1]; (* 將ContoourPlot以及color bar合併 *) Labeled[tt,mycolorbar,{Right}] ] colorbarplot[x^2 + y^2, {-2 Pi, 2 Pi}, {-2 Pi, 2 Pi}, "Rainbow"] -- 養花種魚數月亮賞星星 http://chungyuandye.twbbs.org -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.134.159

04/18 03:38, , 1F
感謝呀 解了我不少疑問
04/18 03:38, 1F

04/18 11:34, , 2F
請問一下為什麼不用內建的 Legend[]?
04/18 11:34, 2F

04/18 11:34, , 3F
04/18 11:34, 3F
文章代碼(AID): #1FZO7mgD (Mathematica)
文章代碼(AID): #1FZO7mgD (Mathematica)