Matlab中的线性与非线性轴

Matlab中的线性与非线性轴,matlab,plot,matlab-figure,multiple-axes,Matlab,Plot,Matlab Figure,Multiple Axes,我是MatLab新手,我需要一些帮助来创建一个图表中的线性和非线性轴。 我需要用两个不同的X轴制作图表。一个X轴在底部显示1000/T,第二个X轴在图表顶部显示T 示例图: 你知道如何在MatLab中解决这个问题吗? 谢谢。在Mathworks网站上有关于使用两个y轴的图形的文档 将概念转换为x轴应该很简单。只需在第一个轴的同一位置创建第二个轴对象即可。让我们首先创建一些数据: x1 = 1:0.1:3.5; x2 = 1./x1; y = (0.5*(x1-2)).^3; 现在,我们可以

我是MatLab新手,我需要一些帮助来创建一个图表中的线性和非线性轴。 我需要用两个不同的X轴制作图表。一个X轴在底部显示1000/T,第二个X轴在图表顶部显示T

示例图:

你知道如何在MatLab中解决这个问题吗?
谢谢。

在Mathworks网站上有关于使用两个y轴的图形的文档


将概念转换为x轴应该很简单。

只需在第一个轴的同一位置创建第二个轴对象即可。让我们首先创建一些数据:

x1 = 1:0.1:3.5;
x2 = 1./x1;
y = (0.5*(x1-2)).^3;
现在,我们可以使用第一个轴创建法线图,并获得轴控制柄:

plot(x1,y,'-r');
ax(1) = gca;
然后,我们在与第一个轴相同的位置创建第二个轴对象,并使颜色
none
,使其透明,下面的绘图仍然可见。由于这也添加了第二个Y轴,我们只需删除第二个轴的Y记号

ax(2) = axes('Position',ax(1).Position,'XAxisLocation','top','Color','none');
set(ax(2),'YTick',[]);
现在,让我们根据需要格式化第二个X轴。让我们将限制设置为
x2
向量的最小值和最大值,并使其为对数:

set(ax(2),'XLim',[min(x2),max(x2)]);
set(ax(2),'XScale','log');
现在我们仍然有一个问题,
ax(1)
的xtick也显示在顶部,而
ax(2)
的xtick也显示在底部。可以通过移除现有轴周围的长方体并创建第三个轴(不带任何记号,但带有长方体)来修复此问题

box(ax(1),'off');
box(ax(2),'off');
ax(3) = axes('Position',ax(1).Position,'XTick',[],'YTick',[],'Box','on','Color','none');
现在,我们终于可以链接轴,以便能够正确缩放

linkaxes(ax);

应该是这样了……

谢谢你的评论,但我还需要一些别的东西。在您的示例中,蓝色轴表示蓝色曲线,红色轴表示红色曲线。我的问题是将两个轴连接到一条曲线(图形)。制作一个假图并将第二个设置为不可见,怎么样?很好,很有用:)+1谢谢,这看起来很有用。不幸的是,顶部X轴不是对数刻度,而是
x2=1./x1如何将顶部X轴旋转到1/X比例?