3 回答

TA貢獻1806條經(jīng)驗 獲得超5個贊
您可以嘗試的一種可能性是創(chuàng)建三個軸,一個軸堆疊在另一個軸上'Color',將頂部兩個軸的屬性設置為,'none'以便所有圖可見。您必須調(diào)整軸的寬度,位置和x軸限制,以使3個y軸并排而不是彼此重疊。您還希望從兩個軸中刪除x軸刻度線和標簽,因為它們將彼此疊置。
這是一個通用實現(xiàn),可以計算軸的正確位置和x軸限制的偏移量,以使圖正確對齊:
%# Some sample data:
x = 0:20;
N = numel(x);
y1 = rand(1,N);
y2 = 5.*rand(1,N)+5;
y3 = 50.*rand(1,N)-50;
%# Some initial computations:
axesPosition = [110 40 200 200]; %# Axes position, in pixels
yWidth = 30; %# y axes spacing, in pixels
xLimit = [min(x) max(x)]; %# Range of x values
xOffset = -yWidth*diff(xLimit)/axesPosition(3);
%# Create the figure and axes:
figure('Units','pixels','Position',[200 200 330 260]);
h1 = axes('Units','pixels','Position',axesPosition,...
'Color','w','XColor','k','YColor','r',...
'XLim',xLimit,'YLim',[0 1],'NextPlot','add');
h2 = axes('Units','pixels','Position',axesPosition+yWidth.*[-1 0 1 0],...
'Color','none','XColor','k','YColor','m',...
'XLim',xLimit+[xOffset 0],'YLim',[0 10],...
'XTick',[],'XTickLabel',[],'NextPlot','add');
h3 = axes('Units','pixels','Position',axesPosition+yWidth.*[-2 0 2 0],...
'Color','none','XColor','k','YColor','b',...
'XLim',xLimit+[2*xOffset 0],'YLim',[-50 50],...
'XTick',[],'XTickLabel',[],'NextPlot','add');
xlabel(h1,'time');
ylabel(h3,'values');
%# Plot the data:
plot(h1,x,y1,'r');
plot(h2,x,y2,'m');
plot(h3,x,y3,'b');
這是結果圖:
- 3 回答
- 0 關注
- 1006 瀏覽
添加回答
舉報