【问题标题】:How to plot graphs above each other in Matlab?如何在 Matlab 中绘制相互上方的图形?
【发布时间】:2012-08-27 13:11:30
【问题描述】:

我想在 Matlab 中绘制两个(或更多)图表。我希望它们在第三个上方的第二个上方对齐,依此类推。但是子情节对我来说不是这样。我也不希望它们都以不同的颜色出现在同一张图上,只是为了一个在另一个之上。是否可以?我正在寻找这样的命令,但没有任何成功。 提前感谢您的提示!

【问题讨论】:

  • 子情节你不喜欢的地方是什么?这正是 subplot 的用途?
  • 因为如果我得到 3 个图,子图会将它们定位在 2x2 的位置。我想让它们三个都在彼此之下,这样我就可以轻松地比较每个间隔/将来可以轻松地分割所需的数据间隔。我还希望有可能在 y 轴上设置偏差/偏移量,因此如果例如 plot 1 从 y=0 开始,则将 plot2 设置为从 y=-5 开始。
  • subplot 你想要的。它将 num_rowsnum_cols 作为参数 - 在您的情况下,subplot(3,1,1)(3 行,1 列,位置 1)将是顶部图,subplot(3,1,2) 将是中间图。
  • 您可以使用正确的设置配置 3 个相互重叠的图。我真的认为当你知道如何按照你需要的方式配置它时,你想要的就是子图
  • 看起来 Matlab 有一个 linkaxes() 命令可以解决您的缩放问题,因此您仍然可以使用子图:mathworks.com/help/techdoc/ref/linkaxes.html

标签: matlab graph plot


【解决方案1】:

如果您所说的“一个在另一个之上”是一个“在另一个之上”,那么我认为您需要使用的是 axes 命令。话虽如此,为了让你的情节更具可读性,我认为同一情节中有两个以上的比例会让人很难阅读。

This Matlab 的帮助页面向您展示了如何做到这一点,其要点显示在以下脚本中:

y2 = 1000.*rand(100,1);
x2 = 0:99;

% Plot the first data set
hl1 = line(x1,y1,'Color','r');
% Get the axes and configure it
ax1 = gca;
set(ax1,'XColor','r','YColor','r')

%Create the new axes
ax2 = axes('Position',get(ax1,'Position'),...
           'XAxisLocation','top',...
           'YAxisLocation','right',...
           'Color','none',...
           'XColor','k','YColor','k');
% Plot the second data set with the new axes
hl2 = line(x2,y2,'Color','k','Parent',ax2);

上述脚本创建了以下plot,其中一组轴为红色,另一组轴为黑色。

希望这会有所帮助。

【讨论】:

  • x1 和 y1 的定义在哪里?我遇到了一些同样的问题,我对绘制绘图和箱线图很感兴趣,但是 plotyy 对我不起作用
猜你喜欢
  • 2013-11-05
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多