【问题标题】:XY Plot with two y axis Matlab带有两个 y 轴 Matlab 的 XY 图
【发布时间】:2015-02-25 00:17:18
【问题描述】:

我正在尝试创建一个带有两个 y 轴的 xy 图。我有三组速度数据。我试图创建一个图,其中一个 y 轴显示速度的变化,另一个 y 轴显示距离。请看附图。但是,每组数据都取自 x 轴上的一个位置。我该怎么做?

问候,杰尔

【问题讨论】:

  • 你图片中的x轴不就是速度吗?
  • 不,x 轴只是我记录数据的位置。我不知道如何将其与我的速度数据联系起来。
  • 但是那个凸起是什么意思呢?增加速度?然后x轴是速度(+每个数据条目的偏移量)
  • 我知道你来自哪里。凸起将是速度的降低。事后看来,我不确定这是否可能,正如您所指出的,速度数据中的凸起不会与 x 轴上的点值对齐,会导致问题
  • 我认为你应该重新考虑这个情节。您可以通过 Luis 的回答来实现您的要求,但我不认为您想要您所要求的,因为该图中的速度实际上是 x 轴。 (我认为你也应该重新考虑你的说法,即凸起应该是减少。通常到情节的右边意味着增加)

标签: matlab plot


【解决方案1】:

这是你想要的吗?

x1 = 1:10;             %// example x1 data
y1 = x1.^2;            %// example y1 data
x2 = 5:12;             %// example x2 data
y2 = sqrt(x2);         %// example y2 data
plotyy(x1,y1,x2,y2)    %// plot y1 as a function of x1, and y2 as a function of x2

检查plotyy documentation 的选项。

【讨论】:

  • 否,因为您将数据与 x 轴相关联。即 y 是 x 的函数。在我的例子中,x 只是一个独立的值,它将显示记录数据的位置。位置 1,2 或 3。你知道我现在的问题在哪里吗?
  • 我也尝试了 plotyy,但是当我尝试针对 x 绘制数据时,我只得到一个点或一条垂直线
  • 不,我真的不明白。你有三条曲线,每条曲线对应一个速度。然后你还有一个速度轴。还有第二个垂直轴。我真的无法理解,对不起
【解决方案2】:

您可以标准化您的速度数据并在不同的 x 位置绘制它。但是,一旦您的速度变化太大,预计曲线会重叠。

% define the x locations:  
xloc = [1 2 3];

% set up dummy velocity data:
y = linspace(0,1,101);
phi = linspace(0,pi,101);

vel(1,:) = sin(phi).*0.1;
vel(2,:) = sin(phi).*0.2;
vel(3,:) = sin(phi).*0.3;

% normalize with the global max velocity
vel_nondim = vel ./ max(max(vel));

% plot, using the defined x-locations
hold on
plot(xloc(1) + vel_nondim(1,:), y, 'g')
plot(xloc(2) + vel_nondim(2,:), y, 'b')
plot(xloc(3) + vel_nondim(3,:), y, 'r')

% x limits and ticks
xlim([0 4])
set(gca,'XTick',[1 2 3])

你最终会得到这个情节:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    相关资源
    最近更新 更多