在MATLAB中使用两个轴时排列不同间距的数据?

时间:2015-06-29 11:47:00

标签: matlab plot

我想针对某些数据绘制与另一个x轴(顶部)的值对应的x轴(机器人)。我希望top和bot轴指向相同的数据点。以下代码演示了我的问题

clc; clear all;

botXaxis = [2.54   1.61  1.00  0.61  0.37];
topXaxis = [159283 97232 59354 36232 22117];
data =     [10     10    10    10    10];

hplot = plot(botXaxis,data);
set(hplot,'Linestyle','none','Marker','o'); 
ax1 = gca;
ax1.XScale = 'log';
ax1.XTick = fliplr(botXaxis);
ax1.XLim = [min(botXaxis) max(botXaxis)];
ax1.XTickLabel = fliplr(botXaxis);
hold on
plot1 = plot([botXaxis(3) botXaxis(3)],get(ax1,'YLim'),'--','color',[0 0 0]);

ax1_pos = ax1.Position;
ax2 = axes('Position',ax1_pos,'XAxisLocation','top','YAxisLocation','right','Color','none');
ax2.XScale = 'log';
set(ax2, 'XTickMode', 'manual');
ax2.XLim = [min(topXaxis) max(topXaxis)];
ax2.XTickMode = 'auto';
ax2.XTick = fliplr(topXaxis);
hold on
plot1 = plot([topXaxis(3) topXaxis(3)],get(ax1,'YLim'),'-','color',[0 0 0]);

% Fix double tick marks 
set(ax1,'box','off');

如果你运行它,会出现这个图:

plot

我绘制了直线以查看数据是否正确排列。如你所见,他们没有。我想知道是否有办法解决这个问题? data的值应与topXaxisbotXaxis对齐。

由于

0 个答案:

没有答案