我试图使用semilogx
matlab函数绘制3条曲线,并在右侧的另一条y轴上添加第四条曲线。所有这些都应该绘制在x轴的相同对数标度上。以下代码表示派生错误; x轴不正确。该图必须具有单个x轴的刻度模式,对数为1。怎么能修好?
另外,如何为这4条曲线添加图例?
close all, clc
figure, semilogx([1:100:1000],[rand(1,10)],'bo-'),
xlabel('xlabel'),ylabel('ylabel'), hold on;
semilogx([1:100:1000], [rand(1,10)], 'ro-'), hold on,
semilogx([1:100:1000], [rand(1,10)], 'ko-'), hold off
legend('1','2','3','Location','Best')
ax1 = gca;
ax2 = axes('YAxisLocation','right',...
'Color' , 'none',...
'YColor', 'm');
linkaxes([ax1 ax2 ], 'x')
x4 = [1:100:1000];
y4 = [rand(1,10)*2];
line(x4, y4, 'color', 'm', 'Marker','x','LineStyle',':', 'parent',ax1)
ylabel('y2')
答案 0 :(得分:1)
您可以使用plotyy
功能绘制两条线,一条在右侧,另一条在左侧。然后,您可以hold on
使用semilogx
绘制剩余的行。
plotyy([1:100:1000], [rand(1,10)], [1:100:1000], [rand(1,10)]*2, @semilogx);
hold on;
semilogx([1:100:1000], [rand(1,10)], 'ro-');
semilogx([1:100:1000], [rand(1,10)], 'mo-');
hold off;
legend('Line1','Line2','Line3','Line4','Location','Northwest')