【问题标题】:plot a line between two points in subplot matlab在子图matlab中的两点之间绘制一条线
【发布时间】:2020-12-31 19:36:19
【问题描述】:

我想在两个子图点之间画一条线,但我不知道如何指向它们。 我有这个想法,但它会引发错误。

plot(subplot(1,2,1),[1 2],subplot(1,2,2),[3 4]);

【问题讨论】:

  • 你有一个图表,通过两个子图之间的线来表达你的意思吗?

标签: matlab subplot


【解决方案1】:

在子图之间绘制一条红线:

下面是使用annotation() 函数绘制的线。此函数可以有多个输入属性,例如 arrowline,它们指示注释采用的形状。您可以通过调整下方的XY 来编辑线条的位置/坐标。

clf;
subplot(1,2,1); plot([1 2]);
subplot(1,2,2); plot([3 4]);
X = [0.465,0.57];
Y = [0.48,0.48];

Line_Annotation = annotation('line',X,Y);
Line_Annotation.LineWidth = 3;
Line_Annotation.Color = 'red';

在两个子图点之间绘制一条红线:

clf;
subplot(1,2,1); plot([1 2]);
subplot(1,2,2); plot([3 4]);
X = [0.282,0.792];
Y = [0.48,0.65];

Line_Annotation = annotation('line',X,Y);
Line_Annotation.LineWidth = 1;
Line_Annotation.Color = 'red';

使用 MATLAB R2019b 运行

【讨论】:

  • 在注释中 X 和 Y 必须在 [0,1] 之间,我的图是图像,我想用我在两个图像中的坐标在像素之间画一条线。
  • 是的,这是真的,因为注释是相对于图形大小的分数/小数。
  • 那么如何将像素坐标转换为[0 1]?
  • 一种方法是使用它们的 Position 属性来调整图形和子图的大小,然后相应地计算所有内容,但这需要大量工作。如果您只打算做几行,那么反复试验是可行的。
  • 您可能需要考虑将两个图像放在一个图中,然后使用 line 函数可能会容易得多。
猜你喜欢
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2016-12-20
  • 1970-01-01
相关资源
最近更新 更多