如何在使用相同的y轴的同时组合多个x轴?

时间:2014-02-05 13:23:52

标签: matlab plot matlab-figure

我试图在对象后面的不同流向位置(位置1,2和3)绘制一个物体后面的尾流速度不足。

图表应如何显示的草图如下所示。 x轴表示速度,y轴是垂直于流动的坐标 enter image description here

如何重新启动x轴,使每个位置的数据都绘制在自己的空间中,类似于它在流程中的实际位置。

2 个答案:

答案 0 :(得分:2)

您可以考虑在带有偏移的单个x轴上绘制数据并更改x轴刻度的标签。

将x-vector视为第一个位置的x_pos1,第二个和第三个位置相似但添加了偏移量。例如。 offset = 15; x_pos2 = x_pos1 + offset;

您可以通过以下方式获取和更改x轴刻度标签:

get(gca, 'xticklabel') 
set(gca, 'xticklabel', yourLabelHere)

答案 1 :(得分:2)

最简单的解决方案我认为是在水平排列subplots中创建所需的所有绘图,然后根据您的完美主义水平“美化”^ _ ^

enter image description here

我在这种情况下所做的“美化”是:

  • 对于每个axes中的subplot,请关闭'box'选项
  • ytick设置为[]并将y - 轴的颜色设为白色,每个y - 轴除了最左边的一个
  • 在背景中创建另一个轴对象,没有任何轴标签,因此看起来子图实际上是一个图

以下是代码:

%// Some bogus data
y = 0:0.1:4*pi;

x1 = sin(y);
x2 = sin(3*y);
x3 = sin(2*y).*sin(5*y);

%// Initialize figure window
figure(1), clf, hold on

%// Plot each plot on its own axes
subplot(1,3,3), hold on
plot(x3,y)
set(gca,...
    'ytick' , [],...
    'ycolor', 'w',...
    'box'   , 'off');

subplot(1,3,2)
plot(x2,y)
set(gca,...
    'ytick' , [],...    
    'ycolor', 'w',...
    'box'   , 'off')

subplot(1,3,1)
plot(x1,y)
set(gca,... 
    'box', 'off') %// NOTE: don't kill these axes

%// Background axes
P = axes('parent', 1, 'xtick', [], 'ytick', []);
uistack(P, 'down', 10)