2.9.1 图形结构1.9 节讨论了用 Plot 和 ListPlot 等函数绘制函数和数据的图形,本节讨论 Mathematica 如何表示这些图形,如何编程去产生更复杂的图形. 基本思想是 Mathematica 用图形基元的集合表示所有图形. 图形基元包括 Point (点), Line (线) 和 Polygon (多边形),以及 RGBColor, Thickness 和 SurfaceColor. 里产生了一列点
Out[1]= |  |
InputForm 说明了Mathematica 如何表示图形. 每个点表示为一个 Point 图形基元. 这个例子中使用的图形的各种可选项也被给出 Out[2]//InputForm=
 |
在 Mathematica 中每个完全的图形块都用图形对象表示. 对应于不同类型 的图形,有几种不同类型的图形对象. 每类图形对象有确定的头部以表明 它的类型. Mathematica的图形对象 Plot 和 ListPlot 等 1.19 节中讨论的函数都按 Mathematica 内部图形对象 工作,然后显示它们. 由函数和数据产生的图形对象 在 Mathematica 中可以通过自行建立图形对象产生其它类型的图象. 由于 Mathematica 中的图形对象是符号表达式,所以能用所有的 Mathematica 标准函数 对其进行操作. 产生了一个图形对象后可以用函数 Show 来显示它们. 显示图形对象 利用 Table 去建立一个多边形图形基元
Out[3]= |  |
这里产生一个包含该多边形图形基元的图形对象. 在标准输出格式中,图形对象用 -Graphics- 简单地给出
Out[4]= |  |
InputForm 完整地显示了图形对象 Out[5]//InputForm=
 |
这里显示刚创建的图形对象
Out[6]= |  |
修改图形的局部和全局方式 给定了一个图形基元列表后, Mathematica 提供了两种方式去修改最终的图形. 首先可以在 图形基元列表中插入一些图形指令,例如 RGBColor,以修改列表中的图形基元. 用这种方式 可以指定怎样给出一个图形元素列表. 本例用了上面的图形元素列表,并增加了图形指令 GrayLevel[0.3]
Out[7]= |  |
这时多边形呈现为灰色
Out[8]= |  |
通过插入图形指令,可以指定图形基元的显示方式. 用图形选项 可以对图形进行全局的修改. 通过增加图形选项 Frame 修改图形的外观
Out[9]= |  |
Show 返回值是有可选项的图形对象 Out[10]//InputForm=
 |
在 Show 中指定图形选项可以使一个图形按不同的风格显示. Show 总是返回已显示的图形对象. 当在 Show 中给出可选项时, 这些选项就自动地插入在 Show 返回的图形对象中. 于是,在没有改变选项 时,下一次 Show 显示的将是同一个图形. 在任何情况下,新指定的选项覆盖 以前的选项. 找出图形对象的可选项 有些可选项需要对图形某一块的参数指定一个值,其它选项可以设置为 Automatic,使 Mathematica 用内部算法为参数选择适当的值. 这时可以用函数 AbsoluteOptions 去得到 Mathematica 实际使用的值. 这里是一个图形
Out[11]= |  |
PlotRange 被设置为默认值 Automatic, 指定 Mathematica 用内部算法确定实际绘图范围
Out[12]= |  |
AbsoluteOptions 给出了 Mathematica 实际确定的绘图范围
Out[13]= |  |
确定图形块的完全形式 对图形选项 Axes 等,Mathematica 有效地构造一个图形基元列表去表示所确定的 坐标轴等对象. Mathematica 一般不明确地返回用这种方法构造的列表,有时需要 得到这个列表. 函数 FullGraphics 给出不使用任何选项绘制指定图形所需的 完全的图形基元列表. 这里画出了一列值的图形
Out[14]= |  |
FullGraphics 生成了包括表示坐标轴等的图形元素的图形对象
Out[15]//Short= |  |
Plot 和 Show 在默认设置下,使 Mathematica 输出图形. 一般地,图形输出由图形选项 DisplayFunction 控制,该选项的默认值是全局变量 $DisplayFunction 的值. 在大部分情况下,$DisplayFunction 和 DisplayFunction 选项的设置是用 低级的显示函数 Display (在一些处理后)产生输出.有时需要用 Plot 等 函数产生一个图形对象, 但不需要立即显示它,这可以用选项 DisplayFunction->Identity 实现. 2.9.14 节将仔细讨论这种情况. Mathematica 表达式 产生一个图形对象,但不显示它
Out[16]= |  |
修改这个图形对象,也不显示它
Out[17]= |  |
让 Mathematica 用默认的显示函数显示该图形
Out[18]= |  |
|