多个x轴和y轴,带有MATLAB中的图

时间:2015-06-05 20:41:15

标签: matlab plot

我正在尝试按照MATLAB的文档Graph with Multiple x-axes and y-axes来绘制2 x和y轴,而不是绘图而不是线。这就是我到目前为止所做的:

  clear all; close all; clc; 
 % Arbitrary x's and y's
  x1 = [10 20 30 40];
  y1 = [1 2 3 4];
  x2 = [100 200 300 400];
  y2 = [105 95 85 75];

 figure
 plot(x1,y1,'Color','r')
 ax1 = gca; % current axes
 ax1.XColor = 'r';
 ax1.YColor = 'r';
 ax1_pos = ax1.Position; % position of first axes
 ax2 = axes('Position',ax1_pos,...
     'XAxisLocation','top',...
     'YAxisLocation','right',...
     'Color','none');

 %line(x2,y2,'Parent',ax2,'Color','k') <--- This line works
 plot(ax2, x2, y2) <--- This line doesn't work

我查看了情节文档2-D line plot,但似乎无法得到情节(ax,__)来帮助/做我期望的事情。

该图最终没有绘制第二个图,轴最终重叠。 任何建议如何解决这个问题并获得2轴绘图工作? 我目前正在使用MATLAB R2014b。

1 个答案:

答案 0 :(得分:3)

在尝试考虑MATLAB的设置层次结构后,最后想出了这个。

该图似乎重置了轴ax2属性,因此在绘图之前设置它们并没有产生影响。看起来这行并没有这样做。因此,为了使这与图表一起使用,我做了以下内容:

clear all; close all; clc; 
% Arbitrary x's and y's
x1 = [10 20 30 40];
y1 = [1 2 3 4];
x2 = [100 200 300 400];
y2 = [105 95 85 75];

figure
plot(x1,y1,'o', 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r')
ax2 = axes('Color','none'); % Create secondary axis
plot(ax2, x2,y2,'o', 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'b')
% Now set the secondary axis attributes
ax2.Color = 'none'; % Make the chart area transparent
ax2.XAxisLocation = 'top'; % Move the secondary x axis to the top
ax2.YAxisLocation = 'right'; % Move the secondary y axis to the right

enter image description here