我正在尝试绘制y vs x图。 x是时间向量。但是,在不同的(不规则的时间),会有第二个向量k(引擎小时)发生变化。
例如:
t = [1:1:10];
k = [1 1 2 2 2 2 2 5 8 8];
t
和k
的长度相同。
然而,在我的y vs t图上,我想要第二个x轴(由t向量驱动),显示k的变化。例如,在t = 1
,k = 1
,...然后我们在t = 3
,k = 1
看到了新值。
如何创建这样的第二轴?
答案 0 :(得分:0)
我不清楚,但试试这个
nk = [0,diff(k)];
答案 1 :(得分:0)
这个问题对我来说有点难以理解......但我会尝试一下。
您希望在同一图中绘制2个图表。
听起来你想要一个在单个x轴上有2个y轴的图。您可以使用plotyy功能,例如:
y = sin(0:2*pi/9:2*pi);
t = [1:10];
k = [1 1 2 2 2 2 2 5 8 8];
figure(1);
[ax1,h1,h2] = plotyy(t,y,t,k);
xlabel('time');
ylabel(ax1(1),'y');
ylabel(ax1(2),'engine hours');
这就是你想要的吗?或者你的意思是你试图在 y vs t 图上创建一个额外的x轴,其中t值被相应的k值替换(即一条线穿过你的图表对应到2个不同的x轴和y轴)?
要做到这一点,你可以尝试在顶部用x轴制作一个额外的图,然后用k
手动标记x-ticks,然后创建一个新轴并绘制 y vs t 图表顶部。以下代码给出了一个示例:
y = sin(0:2*pi/9:2*pi);
t = [1:10];
k = [1 1 2 2 2 2 2 5 8 8];
% Clear old figure
try
close 1;
end
figure(1);
%% Create t vs k plot (upper x axis)
axes();
plot(t,y);
set(gca,'xaxislocation','top','yticklabel',[],'xticklabel',k);
xlabel('Engine Hours');
hold on;
%% Create t vs y plot
axes()
plot(t,y);
xlabel('time');
ylabel('y');
set(gca,'xaxislocation','bottom');