在matlab中混合绘图和符号时,yticks无法正确显示

在matlab中混合绘图和符号时,yticks无法正确显示,matlab,plot,Matlab,Plot,我正在用plotyy在同一个图形中绘制两条不同轴的曲线。第一条曲线的范围为10^-4到10^-1,第二条曲线的范围为0到10。如果我用下面的方法来画 [AX,H1,H2]=plotyy(x,y1,x,y2,'符号学','符号学') 它们都将以符号的形式绘制,并以y的正确比例绘制。但我不想在log10的刻度中显示y2,所以我改变了 [AX,H1,H2]=plotyy(x,y1,x,y2,‘符号学’,‘plot’) 然而,在左y轴和右y轴上,勾号仅显示最小和最大范围,所有细节都消失了。为什么会这样?

我正在用plotyy在同一个图形中绘制两条不同轴的曲线。第一条曲线的范围为10^-4到10^-1,第二条曲线的范围为0到10。如果我用下面的方法来画

[AX,H1,H2]=plotyy(x,y1,x,y2,'符号学','符号学')

它们都将以符号的形式绘制,并以y的正确比例绘制。但我不想在log10的刻度中显示y2,所以我改变了

[AX,H1,H2]=plotyy(x,y1,x,y2,‘符号学’,‘plot’)

然而,在左y轴和右y轴上,勾号仅显示最小和最大范围,所有细节都消失了。为什么会这样?

您可以尝试以下方法:

[AX, H1, H2] = plotyy(x, y1, x, y2, 'semilogy', 'plot');

% set yticks for the left axis 
set(AX(1), 'ytick', yourDesiredYticks1)
set(AX(1), 'box', 'off') % to remove corresponding yticks on the right side of the plot

% set yticks for the right axis
set(AX(2), 'ytick', yourDesiredYticks2)
set(AX(2), 'box', 'off')
您可以尝试以下方法:

[AX, H1, H2] = plotyy(x, y1, x, y2, 'semilogy', 'plot');

% set yticks for the left axis 
set(AX(1), 'ytick', yourDesiredYticks1)
set(AX(1), 'box', 'off') % to remove corresponding yticks on the right side of the plot

% set yticks for the right axis
set(AX(2), 'ytick', yourDesiredYticks2)
set(AX(2), 'box', 'off')
试试这个:

%# create some data resembling what you described
x = 1:100;
y1 = rand(size(x))*1e-1 + 1e-4;
y2 = rand(size(x))*10;

%# plot
hAx = plotyy(x,y1, x,y2, 'semilogy', 'semilogy');
set(hAx(2), 'YScale','linear')
试试这个:

%# create some data resembling what you described
x = 1:100;
y1 = rand(size(x))*1e-1 + 1e-4;
y2 = rand(size(x))*10;

%# plot
hAx = plotyy(x,y1, x,y2, 'semilogy', 'semilogy');
set(hAx(2), 'YScale','linear')

我想我以前遇到过这种情况,解决方法是手动设置记号,这有点棘手,因为有两组y记号需要使用!明天我将尝试查找代码。我想我以前遇到过这种情况,解决方案是手动设置记号,这有点棘手,因为有两组y记号要处理!明天我将尝试查找代码。这是我要建议的,只是我以前不知道
框关闭的东西。但是
box off
不仅从轴的“另一侧”删除记号,还从绘图顶部删除记号(和边框线)。我通常会做的是确保每一面都有相同数量的记号。这有一个优点,就是你可以打开网格线,让事情看起来像样。这就是我要建议的,只是我以前不知道关闭
框的东西。但是
box off
不仅从轴的“另一侧”删除记号,还从绘图顶部删除记号(和边框线)。我通常会做的是确保每一面都有相同数量的记号。这样做的好处是,您可以打开网格线,并使事物看起来像样。