在Mathematica中,如何在模块内显示图形?

8
我希望能在模组内展示图表(也许是递归的):
m = Module[{i, j}, i = 3; Plot[Sin[t], {t, 0, 1}]; j = 4]

即使
m = Module[{i, j}, i = 3; Show[Plot[Sin[t], {t, 0, 1}]]; j = 4]

为什么代码没有运行?如何正确绘图?


1
你已经用分号压制了 Plot 的输出... 尝试使用 m = Module[{i = 3, j = 4}, Plot[Sin[t], {t, 0, 1}]]。如果你的 ij 赋值取决于代码块中的特定位置(即,如果这是一个简化的示例),请使用 m = Module[{i, j, p}, i = 3; p = Plot[Sin[t], {t, 0, 1}]; j = 4; p] - user616736
2
刚刚在Mathgroup上有一个非常相似的问题:“模块中的绘图”http://forums.wolfram.com/mathgroup/archive/2011/Dec/msg00605.html(也许我们需要一个Mathematica FAQ?因为我以前看到过很多次这个问题被问到) - Nasser
1个回答

15

Mathematica通常显示绘图的唯一原因是Plot函数返回表示绘图的图形对象,并且Mathematica在笔记本中显示您运行的任何代码的返回值。然而,当您在语句后面加上分号时,您会防止它返回一个值。

如果您需要在模块中间显示某些内容,可以使用Print[Plot[...]];Print函数直接显示其参数的值。


4
我认为在这种情况下,命令的名称“Show”暗示它正在执行与实际不同的操作(“Show”会合并多个“Graphics”对象的显示,而不是导致它们被展示)。 - Daniel Chisholm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接