Re: [問題] Legend 繪圖的問題.已回收

看板MATLAB作者 (陸)時間16年前 (2010/02/04 11:52), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
我重新看了你的問題了 假如你figure(4)是想要繪出2D曲線 之所以legend不能呈現你的結果在於u1以及u2 因為他們都是100*100的二維矩陣 所以當使用plot(u1,Y,'g',u2,Y,'--r')時 看起來似乎只有兩條曲線 其實裡面包含了200曲線 所以前一百條是以'g'呈現;後一百條是以'--r'呈現 因此使用legend('X=-0.05','X=0',2)會呈現出'前兩條'曲線'g'的結果 假如使用legend('X=-0.05','X=0')會呈現所有曲線結果(很難看,也不是你要的答案) 所以對於u1或是u2你可能需要著墨一下 希望有回答到你的問題,謝謝 ※ 引述《Jerryamd (Let's go cubbies)》之銘言: : 請問一下版上的前輩.. : 我現在有兩條資料.. : 可是我用legend 指令他會顯示出兩行第一條的資料. : 就是圖出來以後legend 的那欄只有兩行綠線的描述.. : 而原本應該是紅色三角形的描述卻變成 : 綠線然後X=0. : http://www.wretch.cc/album/show.php?i=Jerryamd&b=18&f=1874287603&p=0 : 想請問一下要怎麼修正呢..? : clc : clear all : X=linspace(-2,2,100); : Y=linspace(-2,2,100); : [XX,YY]=meshgrid(X,Y); : u=0.2.*YY-0.2.*(XX.^2).*YY-0.4.*(YY.^3); : v=0.2.*XX.*(YY.^2); : figure(1) : contour(XX,YY,u,100) : hold on : figure(2) : sx=linspace(-2,2,8); : sy=linspace(-2,2,8); : [sxx,syy]=meshgrid(sx,sy); : h=stream2(XX,YY,u,v,sxx,syy); : streamline(h) : hold on : figure(3) : Xq=linspace(-2,2,10); : Yq=linspace(-2,2,10); : [XXq,YYq]=meshgrid(Xq,Yq); : uq=0.2.*YYq-0.2.*(XXq.^2).*YYq-0.4.*(YYq.^3); : vq=0.2.*XXq.*(YYq.^2); : quiver(XXq,YYq,uq,vq); : hold on : figure(4) : X1=-0.05; : X2=0; : u1=0.2.*YY-0.2.*(X1.^2).*YY-0.4.*(YY.^3); : u2=0.2.*YY-0.2.*(X2.^2).*YY-0.4.*(YY.^3); : plot(u1,Y,'g',u2,Y,'--r') : hold on : xlabel('U vector') : ylabel('U vector y value') : title('U vector y value at X point') : legend('X=-0.05','X=0',2) : 感謝回答的前輩..謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.66.52 ※ 編輯: artdaniel 來自: 203.73.66.52 (02/04 12:03)

02/04 16:57, , 1F
感謝前輩的回答...這樣我知道問題在哪了..謝謝
02/04 16:57, 1F
文章代碼(AID): #1BQaIEnV (MATLAB)
文章代碼(AID): #1BQaIEnV (MATLAB)