matlab两个图共用一个x轴_SCI论文写作MATLAB出图(2)
接著SCI論文寫作MATLAB出圖(1)(以下介紹均由出圖(1)代替),現在來講第二部分,曾經也在出圖這塊走了不少彎路,現在呢,對出圖這部分有一些心得,對有需求的同學略盡微薄之力吧。另外,提一嘴,當時找學習資料的痛苦也是記憶猶新的,所謂書到用時方恨少,事非經過不知難,在知識的ocean里每走一步都好難...
這里聲明一下,只是講一些基礎的東西,有些高端的出圖方式由于本人才疏學淺,不太會就會避開不說了,另外可能理解不到位,原理解釋錯誤也請見諒。
真正在這個出圖地方搞得創新一點,讓人刮目相看,非常新穎,那得諸君好好下一番功夫,因為你會發現大牛的文章往往他們的圖是非常美的,信息多,外表美觀,沒一定的功夫是出不來的。matlab出圖重點就是你得知道這種出圖方式的主函數,也即它的原型函數,然后其它輔助函數充當綠葉。
言歸正傳,本章講以下兩個內容
1.雙坐標圖
這種出圖方式在SCI論文中也是很常見的一種出圖方式
引自文獻[2]目前我所知的有兩個主函數可以實現這個功能,一個是plotyy,一個是yyaxis。
1.1 雙坐標出圖的第一個主函數是,plotyy
同樣拿上篇文章出圖(1)中的兩個函數舉例,就以這兩個函數y1,y2作為y軸
t=0:0.1:1 y1=@(t)2.*t.^2+1; y2=@(t)t.^3+2.^t;程序如下
clear clc set(gcf,'ToolBar','none','ReSize','off'); %移除工具欄 set(gcf,'color','w'); %如果有需要,自己設計圖窗大小 t=0:0.1:1 y1=@(t)2.*t.^2+1; y2=@(t)t.^3+2.^t; [AX,H1,H2] =plotyy(t,y1(t),t,y2(t),'plot'); set(AX,'FontSize',10,'FontName','Times New Roman','LineWidth',2,'FontWeight','bold'); %坐標軸設置 set(AX(1),'Xcolor','k','Ycolor','c');%y1軸顏色設置 set(AX(2),'Xcolor','k','Ycolor','r');%y2軸顏色設置 set(get(AX(1),'Ylabel'),'String','y_1','FontSize',14,'FontName','Times New Roman'); set(get(AX(2),'Ylabel'),'String','y_2','FontSize',14,'FontName','Times New Roman') ; title('函數值對比','FontSize',10,'FontName','華文中宋','FontWeight','bold') ; set(H1,'LineStyle','-','color','c','Linewidth',1.5);%y1顏色設置 set(H2,'LineStyle','-','color','r','Linewidth',1.5);%y2顏色設置出圖結果
幾點說明:
1).可以換為其它形式
1.[AX,H1,H2]=plotyy(t,y1(t),t,y2(t),'plot');這里可以給plotyy可以增加其它的參數,比如
plotyy(t,y1,t,y2,'plot','stem')看看效果
1.2 雙坐標出圖的第二個主函數是,yyaxis
程序如下
clear clc set(gcf,'ToolBar','none','ReSize','off'); % remove the toolbar set(gcf,'color','w') t=0:0.1:1 y1=@(t)2.*t.^2+1; y2=@(t)t.^3+2.^t; left_color = [1 0.3 0];%定義左軸顏色 right_color = [0 0.5 0.3];%定義右軸顏色 %左軸相關 yyaxis left plot(t,y1(t),'Color',left_color,'Linewidth',1.5) ax = gca; ax.YColor = left_color;%定義軸的顏色 set(ax,'Linewidth',1.5);%定義軸的線寬 ylabel('y_1','FontSize',14,'FontName','Times New Roman','FontWeight','bold'); %右軸相關 yyaxis right plot(t,y2(t),'Color',right_color,'Linewidth',1.5) ax = gca; ax.YColor = right_color; ylabel('y_2','FontSize',14,'FontName','Times New Roman','FontWeight','bold'); xlabel('t(s)','FontSize',14,'FontName','Times New Roman','FontWeight','bold'); title('函數值對比','FontSize',12,'FontName','華文中宋','FontWeight','bold') ;看看效果
注
1)如果增加圖例
需要給兩個plot定義兩個名字,p1,p2,如
p1 = plot(t,y1(t),'Color',left_color,'Linewidth',1.5)增加legend
legend('p1','p2','Location','northwest','Orientation','horizontal')2)圖例的位置
這里是指計算機給出的自動位置,如果自定義位置,可以參考我的第一篇文章出圖(1)
引自MATLAB官網2.三維圖的繪制
三維圖,一個圖里邊三種關系,特殊情況下會遇到,你的圖出來乍一看也是很高大上的。
舉個例子
引自文獻[1]clc clear set(gcf,'ToolBar','none','ReSize','off'); % remove the toolbar set(gcf,'color','w');t=0:0.1:1 y1=@(t)2*t.^2+1; y2=@(t)t.^3+2.^t;x = t; y = y1(t); z = y2(t);[X,Y]=meshgrid(min(x):max(x),min(y):max(y)); Z=griddata(x,y,z,X,Y,'v4');b=surf(X,Y,Z); g = get(b,'Parent'); set(g,'Linewidth',1.5,'FontName','Times New Roman','FontSize',10,'FontWeight','bold');shading interp; colormap(jet);b.EdgeColor = 'none';xlabel('t','FontSize',12,'FontName','Times New Roman','FontWeight','bold'); ylabel('y_1','FontSize',10,'FontName','Times New Roman','FontWeight','bold'); zlabel('y_2','FontSize',10,'FontName','Times New Roman','FontWeight','bold');程序輸出的結果
這個里邊,需要注意的是兩個函數,一個是meshgrid,一個是surf,我的理解是meshgrid是給surf做服務的,surf就是給這個曲面著色,而meshgrid是網格劃分,然后使用griddata函數進行插值得到其余鄰近值,畢竟僅僅是我們給出的點,t=0:0.1:1,是11個點,是不能得到曲面的,必然要進行差值算法。因此,三維圖的主要語句就是如下三句
[X,Y]=meshgrid(min(x):max(x),min(y):max(y)); Z=griddata(x,y,z,X,Y,'v4'); b=surf(X,Y,Z);幾點補充說明:
1)針對差值函數griddata,有以下幾種差值算法
'linear’:基于三角形的線性插值(缺省算法);‘cubic’: 基于三角形的三次插值;
‘nearest’:最鄰近插值法;
‘v4’:MATLAB 4 中的griddata 算法。
2)對其它函數的一些補充
i:shading函數的作用,是處理顏色效果的,個人喜歡interp
shading interp;a.shading faceted
b.shading flat
是在faceted函數基礎上的改變,可能數據較少,沒有明顯看到改變ii:colormap 是用于控制曲面圖的顏色
colormap(jet);來自MATLAB官網舉個例子,看下hsv的圖
colormap(hsv);參考文獻
2.Wu X, Li X, Du J. State of Charge Estimation of Lithium-Ion Batteries Over Wide Temperature Range Using Unscented Kalman Filter [J]. IEEE Access, 2018, 6:41993-2003.
總結
以上是生活随笔為你收集整理的matlab两个图共用一个x轴_SCI论文写作MATLAB出图(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018年工业机器人销量排位_2020年
- 下一篇: 如何使用matlab得出pid控制参数值