Re: [問題] 曲線的marker已回收

看板MATLAB作者 (愛上林仙兒的阿飛)時間16年前 (2009/04/30 00:30), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
※ 引述《esaki (Esaki)》之銘言: : 首先先看看這張圖中紅線的部份,這個問題困擾我很久 : http://www.flickr.com/photos/38767406@N00/97764553/ : 今天假如我有1000筆資料要用plot繪出來, : 如果我把繪出來的曲線加上marker,就會有1000個marker在我的曲線上 : 我的疑問是,我在maltab裡面有辦法像那張圖片中的紅線一樣 : 等距離取個50點做marker嗎? : 我目前想到一個辦法就是先把原先1000筆的資料的曲線先繪出來, : 然後再把那1000筆資料取其中的50筆資料用只有marker的曲線疊上去 : 但是我在顯示legend的部份就沒有辦法設定那張圖那樣, : 而是會呈現兩條線一條是只有曲線,另外一條只有marker, : 是不是有其他的辦法或者是函數可以改善這個問題? 我也遇到這個問題 以下是我的作法 x=linspace(0,2*pi,50); % x軸的資料點 y=[1:3:50]; % 等距離取3點作marker a=x.*x;b=x.^3;c=x; % a, b, c 各為50筆資料點 x1=x(y);,a1=a(y);b1=b(y);c1=c(y); % 預計放marker的地方 plot(x(1),a(1),'-ro',x(1),b(1),'-b*',x(1),c(1),'-g+'); %先只畫第一點 legend('Red','Blue','Green',2); %上面三點設定為曲線+marker,此時顯示legend hold on; plot(x,a,'-r');plot(x,b,'-b');plot(x,c,'-g'); % 畫50筆資料點,設定為曲線 plot(x1,a1,'ro');plot(x1,b1,'b*');plot(x1,c1,'g+'); % 每隔3點放marker hold off; http://dl.getdropbox.com/u/1009478/matlabfig.jpg
我比原po多畫的就是每條線的第一點 將它設定成曲線+marker 這樣就可以讓legend顯示出曲線+marker 這我自己土法煉鋼,還是想請教一下有其他辦法或函數可用嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.81.242 ※ 編輯: Logic 來自: 123.193.81.242 (04/30 00:31)

04/30 01:29, , 1F
找legend的handler...把不需要的delete
04/30 01:29, 1F

04/30 01:30, , 2F
不然先畫legend再hold on跳點畫maker也是可以
04/30 01:30, 2F
文章代碼(AID): #19-82az6 (MATLAB)
文章代碼(AID): #19-82az6 (MATLAB)