对于x轴,在相同的对数标度上的多个y图

时间:2013-12-31 02:31:18

标签: matlab plot

我试图使用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')

1 个答案:

答案 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')

enter image description here