您可以执行以下操作。与解决方案相比@Benoit_11我确实使用普通的 Matlab 标签,并用手柄引用两个轴,因此分配是明确的。
以下代码创建一个空的 x 轴b
与单位m/s高度可以忽略不计。之后,在第二个轴上绘制实际绘图a
位于其他轴上方一点并带有单位km/h。要在特定轴上绘图,请将轴句柄作为第一个参数插入stem
。转换自m/s to km/h直接写在调用中stem
。最后,需要设置xlim
- 两个轴的属性为相同的值。
% experimental data
M(:,1) = [ 0, 1, 2, 3, 4, 5];
M(:,3) = [12, 10, 15, 12, 11, 13];
% get bounds
xmaxa = max(M(:,1))*3.6; % km/h
xmaxb = max(M(:,1)); % m/s
figure;
% axis for m/s
b=axes('Position',[.1 .1 .8 1e-12]);
set(b,'Units','normalized');
set(b,'Color','none');
% axis for km/h with stem-plot
a=axes('Position',[.1 .2 .8 .7]);
set(a,'Units','normalized');
stem(a,M(:,1).*3.6, M(:,3));
% set limits and labels
set(a,'xlim',[0 xmaxa]);
set(b,'xlim',[0 xmaxb]);
xlabel(a,'Speed (km/h)')
xlabel(b,'Speed (m/s)')
ylabel(a,'Samples');
title(a,'Double x-axis plot');