2017-08-13 184 views
0

我需要在MATLAB中的同一图上绘制两个图。 这两个数据样本中的最大值和最小值有很大的变化,我无法通过采用相同的y轴限制进行绘图。 我不希望按照其他Overlaying two axes in a Matlab plot中的解释使用两个比例尺,但需要使用单个y轴并获得解决方案。 我尝试的代码:MATLAB:同一图上的多个图的两个不同y轴限制

x_axis_X = 1:length(S); 
y_axis_Y = 1:length(N); 
ylim([-1204200 -1841.6]) 
set(gcf,'color','w'); 
plot(x_axis_X, S,'o-', y_axis_Y, N, 'x-'); 

结果如图其中一个数据样本没有适当y轴绘制范围的情节。 plot

第一个数据样本的y限制为-1204200至-1841.6,第二个为-489429345.5至-10408189.43。 应该如何定义ylim以适合同一图中的两个图? 我很欣赏你的意见。谢谢。

回答

0

我尝试了缩放一个数据集的想法,以便它具有与其他数据集相似的大小。在这里,我将一个数据集乘以100(或任何合适的缩放参数),然后它的大小与其他数据集相似。为了清楚地提到图表中哪些数据已经缩放,我使用了图例。

plot(x,data1,x,100*data2) 
legend('data1','100*data2','location','southeast') 

谢谢。

0

缩放并不是最好的选择,因为您可能需要稍后处理数据。例如,如果您需要日志比例也不起作用。

Matlab有几种处理方法。我特别喜欢在图中使用新的轴,正如我在下面的示例中所做的那样。

为了以防万一,您还可以通过简单的谷歌搜索找到答案!

enter image description here

代码:

a=1:10; 
b=(10:-1:1)*100; 
x=1:10; 
hold on 
plot(x,a,'b') 
pax1=get(gca,'Position'); %get axis position 
ax2 = axes('Position',pax1); %create a new axis 
plot(ax2,x,b,'r') %plot new data 
set(ax2, 'Yaxislocation','right',... 
'color','none') % set it transparent and to the right 
+0

谢谢@Guto的投入。我会尝试这种方法。 – Dattaprasad

1

在旧版本的MATLAB的使用功能plotyy。在更新版本的MATLAB中使用yyaxis。以下是从文档的例子:

x = linspace(0,10); 
y = sin(3*x); 
yyaxis left 
plot(x,y) 

z = sin(3*x).*exp(0.5*x); 
yyaxis right 
plot(x,z) 
ylim([-150 150]) 

enter image description here

相关问题