Matlab畫圖技巧與實例:堆疊圖stackedplot

2021-02-15 算法工程師的學習日誌

在MATLAB線圖中,一共有3種類型,分別是

線圖,包括:plot,plot3,stairs,errorbar,area,stackedplot函數。

對數圖,包括:loglog,semilogx和semilogx函數,。

函數圖,包括:fplot,fimplicit和fplot3函數,感覺和ezplot很像,參見

stackedplot函數專門用來繪製堆疊圖,意思是一組數據擁有共同x軸,而y軸數據不同。在科研中相對於其他類型圖,雖然不常常出現,但偶爾能用到。

注意,注意,注意,stackedplot函數在2018版本以下是沒有的,只有2018版本及以上才有。

1 堆疊圖stackedplot函數

1.1 用法

stackedplot(tbl)
stackedplot(tbl,vars)
stackedplot(___,'XVariable',xvar)
stackedplot(X,Y)
stackedplot(Y)
stackedplot(___,LineSpec)
stackedplot(___,Name,Value)
stackedplot(parent,___)
s = stackedplot(___)

stackedplot(tbl) 在堆疊圖中繪製表或時間表的變量。該函數在垂直層疊的單獨 y 軸中繪製變量。這些變量共享一個公共 x 軸。
如果 tbl 是表,則該函數繪製變量對行號的圖。
如果 tbl 是時間表,則該函數繪製變量對行時間的圖。
stackedplot 函數繪製 tbl 的所有數值、邏輯、分類、日期時間和持續時間變量,並忽略具有任何其他數據類型的表變量。例如,stackedplot(tbl,vars) 僅繪製 vars 指定的表或時間表變量。
stackedplot(___,'XVariable',xvar) 指定為堆疊圖提供 x 值的表變量。此語法僅支持表,而不支持時間表。例如,stackedplot(X,Y) 繪製 Y 列對向量 X 的圖。
stackedplot(Y) 繪製 Y 的列對其行號的圖。x 軸的刻度範圍是從 1 到 Y 的行數。
stackedplot(___,LineSpec) 設置線型、標記符號和顏色。您可以將此語法與前面任何語法中的輸入參數結合使用。例如,stackedplot(___,Name,Value) 使用一個或多個 Name,Value 對組參數設置堆疊圖的屬性。有關屬性列表,請參閱 StackedLineChart 屬性。可以將此選項與前面語法中的任何輸入參數組合一起使用。名稱-值對組設置應用於堆疊圖中的所有繪圖。將每個屬性名稱括在引號中。
stackedplot(parent,___) 在 parent 指定的圖窗、面板或選項卡中創建堆疊圖。選項 parent 可以位於前面的語法中的任何輸入參數組合之前。例如,s = stackedplot(___) 返回 StackedLineChart 對象。創建堆疊圖後,可以使用 s 更改堆疊圖的屬性。有關屬性列表,請參閱 StackedLineChart 屬性。

1.2 示例1

clcclear allclose allx = [1:0.1:10];y(:,1) = sin(x);y(:,2) = cos(x);y(:,3) = sin(x).*cos(x);stackedplot(x,y,'ro');

可以看出,上圖由三個小圖組成,它們公用x軸,但y軸不同。

1.3 示例2

這裡我們可以通過句柄對圖形進行更改。

堆疊圖有很多屬性,包括:

例如,可以對x軸和y軸添加名稱。其他屬性類似,直接指定即可。設定時,注意數據類型。

clcclear allclose allx = [1:0.1:10];y(:,1) = sin(x);y(:,2) = cos(x);y(:,3) = sin(x).*cos(x);h = stackedplot(x,y,'r-');h.DisplayLabels = {'y1','y2','y3'};h.XLabel = {'x-axis'};

1.4 示例3

在堆疊圖的屬性設置時,注意,注意,注意,是對整個圖進行更改,例如,如果將線型改成虛線,那麼三個圖都會被改成虛線。

但是,MATLAB也提供了每個圖的屬性操作,可通過整體屬性中的h.LineProperties進行設置,對於每個小的圖形,h.LineProperties下設屬性有顏色、線型、線寬、點大小、圖類型等等,如下

Color,可以為傳統方法,例如『r』,'b',可以設置RGB三色,如[0.5, 0.5, 0.5]MarkerFaceColorMarkerEdgeColorLineStyle,設置為無時,要用『none』命令LineWidthMarkerMarkerSizePlotType,這裡只能設置為plot,scatter和stairs函數,不能為其他類型

示例如下

clcclear allclose allx = [1:0.1:10];y(:,1) = sin(x);y(:,2) = cos(x);y(:,3) = sin(x).*cos(x);h = stackedplot(x,y,'r-');h.DisplayLabels = {'y1','y2','y3'};h.XLabel = {'x-axis'};h.LineProperties(1).Color = 'b';h.LineProperties(1).LineWidth = 1.5;h.LineProperties(2).LineStyle = 'none';h.LineProperties(2).Marker = 'o';h.LineProperties(2).MarkerSize = 8;h.LineProperties(3).PlotType = 'stairs';h.LineProperties(3).Color = 'k';h.LineProperties(3).LineWidth = 1.5;

這裡,

第一個圖顏色改成藍色,線寬設為1.5;

第二個圖線設置為無,點改為圈,點大小設為8;

第三個圖線型設置為階梯圖,顏色設為黑色,線寬為1.5;

相關焦點

  • Matlab畫圖指令小記
    在matlab一幅圖形中可能有多個曲線,為了區分開不同的曲線需要對曲線進行標示。matlab中用plot畫圖。plot(a,b)。其中是以a為橫坐標,b為縱坐標畫圖。當需要對不同的曲線畫不同的顏色時採用plot(x,y,'black')語句即可。其中black是指黑色線。
  • 【MATLAB】畫圖技巧
    Extra chapter:畫圖技巧plot 函數:基本的畫函數圖像的函數。
  • Matlab基礎畫圖命令-plot
    其中,plot是最基礎的命令,用來繪製二維平面上的線性坐標曲線圖。這裡以plot命令為基礎,配合使用以下命令,可以讓你的最終結果更加豐富。figure、title、xlabel、ylabellegend、text、grid、axisplot畫圖示例代碼plot畫圖示例結果plot命令設置線型、標記、顏色高級繪圖命令
  • 奇怪的Matlab畫圖技巧系列3–光滑變化的曲面圖
    畢業季馬上要到了,給大家總結一些我平常用到的奇特但是好用的Matlab畫圖技巧光滑變化的三維曲面三維曲面展示是目前MATLAB上人眼最容易直觀觀察的多維矩陣內容一種形式,因此三維矩陣的畫圖在很多的論文裡都有涉及
  • Matlab畫圖屬性介紹
    本文摘要:主要介紹matlab的畫圖對象句柄的屬性,線的句柄屬性和軸的句柄屬性。
  • 奇怪的Matlab畫圖技巧系列1–保存高清大圖
    畢業季馬上要到了,給大家總結一些我平常用到的奇特但是好用的Matlab畫圖技巧保存高清大圖很多朋友保存Matlab圖片時會選擇jpg保存或者截圖,然後放到論文發現特別模糊尤其文字部分是進行縮放調整後matlab默認的jpeg等格式導出時默認解析度很低,導致上述的縮放大部分變成放大而非縮小。
  • MATLAB畫圖使用不同的線型、點及標記
    今天我們再介紹一下在畫圖時使用不同的線型、點及標記等。一、 線型、連續標記先從最普通的說起。在plot函數中指定線型。matlab提供的線型、顏色和標記符如下表:如果指定了標記符號但未指定線型,則 plot 僅顯示無線條連接的標記。A = 1;f= 1;x1 = A * sin(2*pi*f*t).
  • MATLAB簡單粗暴教程(十三)——MATLAB裡畫圖的一些基本函數
    值班間隙抓緊時間碼字,怕是再不抓緊時間,後面就要斷檔了…本文主要介紹matlab中常用常見的一些畫圖函數(不包括地圖工具箱和圖片處理神馬的)的最簡單用法。不敢說面面俱到,但是基本上涵蓋的也差不多了,大家經常提問的也都在這裡出現了。
  • 算法工匠MATLAB專訓營:Matlab繪圖,小試牛刀
    plot函數!怎麼用?有沒有實例?我們接著往下學習。二維圖形是將平面坐標上的數據點連接起來的平面圖形。可以採用不同的坐標系,如直角坐標、對數坐標、極坐標等。二維圖形的繪製是其他繪圖操作的基礎。上堂課講到繪製二維曲線的基本函數為plot,怎麼用呢?plot函數是最基本而且應用最為廣泛的繪圖函數,利用它可以在二維平面上繪製出不同的曲線。
  • MATLAB基礎教程-臺大郭彥甫-學習筆記6
    matlab會 refresh ,把之前的圖給清掉,如果 想保留,用 指令 hold on*t;g=sin(2*pi*t);%畫圖plot(t,f,'k-',t,g,'or');%坐標軸和標題xlabel('Time (ms)');ylabel('f(t)');title('Mini Assignment #1');%標註函數legend('t^2','sin(2\pit)');效果圖:
  • matlab初學者基本命令
    matlab初學者基本命令 等於符號 「~=」 不等於符號 「&&」 並且 「||」 或者 「input」 輸入 「fprintf」 輸出 「disp」 展示 「plot
  • 【Matlab】繪圖
    Line from (1,5) to (10,14)圖很順利地畫出來了,然後我們還要再畫一個(1,14)到(10,5)的線,錯誤寫法如下plot(1:10,5:14); plot(1:10,14:-1:5);
  • 【MATLAB圖像】— 繪製plot與其它二維圖形
    1、最基本的plot函數        格式為:plot(y),plot(x,y),plot(x,y,s),s
  • 算法工匠線上訓練營:MATLAB繪圖小試牛刀(20時直播)
    plot函數!怎麼用?有沒有實例?我們接著往下學習。二維圖形是將平面坐標上的數據點連接起來的平面圖形。可以採用不同的坐標系,如直角坐標、對數坐標、極坐標等。二維圖形的繪製是其他繪圖操作的基礎。上堂課講到繪製二維曲線的基本函數為plot,怎麼用呢?plot函數是最基本而且應用最為廣泛的繪圖函數,利用它可以在二維平面上繪製出不同的曲線。怎麼個不同法呢?
  • MATLAB氣象海洋簡單粗暴教程(三十三)——MATLAB裡畫圖的統計函數
    PS 據說二爺的matlab交流微信群每滿100人就會發紅包…加群方式在後面…言歸正傳9.hist3  雙變量柱狀圖用法:hist3(X)X是m*2的矩陣,根據其變量繪製一個N是一個包含每個格點所包含元素個數的矩陣,此用法不出圖。 [N,C] = hist3(X,...)除了N之外,C是每個格子的中心點並且還是不畫圖。 hist3(...,param1,val1,param2,val2,...)允許自定義圖形的參數,不過個人推薦還是句柄比較方便。
  • MATLAB中,你必須知道的!(二)
    三·matlab的繪圖 1·plot(x1,y1,option1,x2,y2,option2);畫二維曲線 2·plot3(x1,y1,z1,option1,x2,y2,z2,option2);畫三維 曲線 3·mesh(X,Y,Z,C);畫三維網格曲面X,Y,Z為矩陣 4·surf(X,Y,Z,C);畫三維陰影曲面,X,Y,Z為矩陣 5·[X,Y]=