我們就來看一下怎樣用MATLAB畫出雙x坐標的圖,同時做好各種標註
輸入要做圖的數據x1 = [1 2 3 4 5 6];x2 = [0.1 0.2 0.3 0.4 0.5 0.6];y = [5 6 7 8 9 10];
然後先根據x1和y畫圖,h1= line(x1,y,'Color','k','Marker','s','MarkerEdgeColor','k','MarkerFaceColor','k');後面這幾個'Color','Marker','MarkerEdgeColor'和'MarkerFaceColor'分別是設置線條的顏色,marker的形狀,marker邊框的顏色,marker內部的顏色。這樣MATLAB也會自動生成一個坐標系,然後我們用下面的語句拿到當前坐標系的句柄ax1,並對當前坐標系進行顏色設置。ax1 = gca;set(ax1,'XColor','k','YColor','k');
然後根據坐標系1的句柄,設置我們的坐標系2。ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','top','XColor','k','YColor','k');其中,'Position'這個屬性設置坐標系2和坐標系1的原點位置一致;'XAxisLocation'設置坐標系2的x軸是在作圖的上方'top'還是下方'bottom',一般選擇上方,不然就和坐標系1的x軸重合了;同理'YAxisLocation'可以是'left'或者'right'; 'XColor'和'YColor'分別是對x軸和y軸的顏色設置。由於我們兩個坐標系的y軸都在左側,可以看到y軸的刻度是不一樣的,然後看起來比較雜亂的兩種。這是因為坐標系2的坐標軸刻度是系統初始化的,一旦畫線之後,由於我們的y值都是一樣的,兩個坐標系的y周刻度就自動變為一樣的了,就不會有這種情況了(見下一步驟中圖片)。
然後兩個坐標系都設置好之後,我們可以用下面的語句在坐標系2中畫線。h2 = line(x2,y,'Color','k','Marker','s','MarkerEdgeColor','k','MarkerFaceColor','w','Parent',ax2);其中,'Parent』是確定我們這條線是畫在ax2這個坐標系下的。
最後我們設置兩個坐標系中x軸, y軸的label。xlabel(ax1,'x1 label name');xlabel(ax2,'x2 label name');ylabel(ax1,'y label name','Color','k');ax1和ax2分別是坐標系1和坐標系2的句柄,以上三個語句分別設置坐標系1的x軸label,坐標系2的x軸label,坐標系1的y軸label.
最後我們添加每條直線的標註。legend([h1,h2],'line1','line2');h1和h2分別是兩條直線的句柄,我們用legend語句設置了著兩條直線的標註。