【问题标题】:Plotting hidden variable/parameter绘制隐藏变量/参数
【发布时间】:2016-08-15 17:23:14
【问题描述】:

我想绘制一些参数图作为 0-1 变量的函数。
我可以轻松设置x=linspace(0,1) 并定义函数a(x)b(x)plot(a,b)

然而,我想要做的是在绘制的图表中显示了我原来的x 参数的值。我想有一个功能可以做到这一点,虽然我还没有找到它。或者,我还可以为我的 0-1 沿着每条迹线做一个颜色渐变。谁能指出我正确的方向?

【问题讨论】:

  • 您可以使用标记的绘图选项轻松添加进度标记,例如'o'。要标记特定点,您可以使用 text 函数。
  • AFAIK 没有直接的方法可以做到这一点,但是您可以使用ismember 之类的方法获取所需标记的 x 值的索引,然后使用这些索引绘制相应的a 和 b 的值

标签: matlab plot matlab-figure


【解决方案1】:

好消息!你可以很容易地做各种事情,让我们从定义一些数据开始:

x = linspace(0,1);
a = sin(5.*x);
b = cos(6.*x);

现在,我们制作一个简单的情节:

plot(x,a,'-o',x,b,'^')

'-o' 表示第一组数据 (a) 将被绘制为带有圆圈标记的线,'^' 表示第二组数据 (b) 将被绘制为没有线,只是三角形。你可以找到all options here
接下来,我们调用:

text(x(50)+0.03,a(50),sprintf('x = %0.3f',x(50)),'FontSize',14)
text(x(30)+0.03,b(30),sprintf('x = %0.3f',x(30)),'FontSize',14)

text 命令在图形上的特定坐标处打印文本。例如,第一行将在 (x(30)+0.03,a(30)) 中打印文本“x = 0.495”。文本字符串使用另一个函数 sprintf 格式化,但您可以只用单引号 (') 编写简单文本。
最后,我们可以通过以下方式添加legend

legend({'sin(5x)','cos(6x)'},'FontSize',16,'Location','SouthWest')

请注意,文本字符串位于元胞数组中。

我们得到结果:

这就是你一直在寻找的那种东西?

【讨论】:

  • 字体不错! :D 这是什么?
  • 字体是“Helvetica”,是我电脑的默认字体。
  • 确实!,在看到这个之前我确实想通了,但话又说回来,这就是这样做的方法!
猜你喜欢
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-17
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多