【问题标题】:2-d graph with two different axis showing different min and max MATLAB具有两个不同轴的二维图,显示不同的最小值和最大值 MATLAB
【发布时间】:2014-07-10 13:35:50
【问题描述】:

我有下面的图表,我需要创建两个不同的 x 轴。这个问题的独特之处在于需要定位最小值和最大值。两者的范围都是 0-100,但是第二个 x 轴上的 100% 值需要位于第一个 x 轴上 50% 值的位置。请参阅图片以进行说明。红色是我需要使用 MATLAB 添加的。

我做了很多查找,虽然将两个不同的轴放在一个图表上非常简单,但我找不到这个特定问题的解决方案。我希望在代码中而不是绘图工具中完成此操作。

【问题讨论】:

  • 你看过this tutorial吗?
  • 是的。它很好地告诉了如何在图表上放置多个轴,但没有解决我提出的问题。我意识到我可以将第二个轴上的比例设为 0-200,但这让读者假设可能存在高于 100 的值,这是不可能的。
  • 你可以玩第二轴的'XTicks''XTicksLabels'
  • 我也看过。也许它可以做我所追求的,但我没有看到它。在我看来,XTicks 只能改变标签之间的距离,而不是它沿轴运行的总距离。感谢您的帮助。
  • 看来你已经尝试了很多东西。如果您可以在帖子中添加简短说明(可能是一些代码),可以帮助其他人为您的问题提供更好的答案。

标签: matlab graphing


【解决方案1】:

这个怎么样

% dummy data
y = 1:80; 
x1 = 100*sin( 4*pi*y/80 ).^2 ;  
x2 = 100*cos( 5*pi*y/80).^2; 

绘制第一行

figure; 
line( x1, y, 'Color', 'b', 'LineWidth', 2 );

获取第一个图的位置和大小

haxes1 = gca; 
haxes1_pos = get(haxes1,'Position');

将第二个绘图的 100% 设置为第一个绘图的 50%(“调整”轴的宽度)

haxes1_pos(3) = haxes1_pos(3)/2; 
haxes2 = axes('Position',haxes1_pos,'XAxisLocation','top','Color','none','XColor','r');

绘制第二行

line( x2, y, 'Color', 'k', 'LineWidth',2,'Parent',haxes2);

这就是你得到的

【讨论】:

  • 没错。谢谢你。这是您之前链接的教程没有的我需要的代码部分: haxes1_pos(3) = haxes1_pos(3)/2;另一件事。当我运行您的代码时,我收到以下错误:尝试使用不正确的字母大小写调用构造函数轴。我没有修改它以供我使用,它正在运行您发布的确切代码。我假设您显示的图表对您有用。
  • @user3753314 为我工作 R2009a。尝试删除axes'Color''XColor' 参数。
  • @user3753314 首先尝试一下haxes2 = axes('Position', haxes1_pos); 这是关键部分。如果这可行,您可以稍后尝试设置其他属性。
猜你喜欢
  • 1970-01-01
  • 2020-09-12
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 2021-05-23
相关资源
最近更新 更多