2.2 基本绘图命令、数组与数据拟合
2.2.1 基本绘图命令
1. 二维作图函数Plot
Plot[函数或函数组,{自变量,下限,上限},选项]
例:画y=sinx在[ , ]的图形
Plot[Sin[x],{x,-Pi/2,Pi/2}]
在同一坐标下画出y=sinx,y=cosx在[ , ]的图形
Plot[{Sin[x],Cos[x]},{x,-Pi/2,Pi/2}]
注意:
(i) 函数组要大括号{ }
(ii) 变量前后要一致(尤其注意大小写X与x勿混淆,数字0与字母o勿混淆)。
查看选项的方法:Options[函数名]
如:Options[Plot]
小技巧:对于不熟悉的选项,可以通过Options[Plot]列出所有选项,然后选择感兴趣的Copy下来,打开Help窗口后粘贴上去,就可以看到相关使用方法与示例。
一个绘图命令可设置多个“选项”,多个“选项”之间用逗号相隔,下面列出一些常用的“选项”的设置。
选项设置形式 意义 默认值
AxesLabel—>{"x","y"} 设置坐标轴的标记X和Y 不做标记
AspectRatio—>Automatic 根据图形自动设置高度宽度比 1:1.618
Axes—>None 不设坐标轴 设坐标轴
Frame—>True 在图形周围加边框 不加边框
GridLines—>Automatic 给图形加网格 不加网格
Plotrange—>{{x0,x1},{y0,y1}} 指定绘图范例
2. 三维作图函数Plot3D
Plot3D[函数或函数组,{自变量1,下限,上限},{自变量2,下限,
上限},选项]
例:Plot3D[Sin[x y],{x,-Pi/2,Pi/2},{y,-Pi,Pi}]
Plot3D与Plot用法基本一致,只是增加了变量的个数。四维或以上(即函数有三个或以上变量)图形无法作出。
下表列出了Plot3D命令的常用选项
选项 意义 默认值
Axes ->False 取消坐标轴 True
PlotLabel->z 加Z轴的标志 None
ViewPoint->{1.3,-2,1} 设置观察点(1.3,-2,1) (1.3,-2.4,2)
Boxed->False 在曲面周围不加立体框 True
Mesh->False 曲面上不加网线 True
Shading->False 在曲面上不涂阴影 True
PlotPoint->30 用30×30网格画图 15
调整视角的方法:
Mathematica可以画很多复杂的三维图形,有时人们希望从不同的方位去观察同一图形,这就需要调整观察点。对已经存在的当前图形可以用Show[%,选项] 重新将图形显示出来,省略选项将得到原来的图形。
观察点的三个参数选取有无穷多种选择,常用的几种列表如下
ViewPoint->{1.3,-2.4,2} 缺省默认值
ViewPoint->{0,-2,0} 正前方
ViewPoint->{0,-2,2} 前上方
ViewPoint->{0,-2,-2} 前下方
ViewPoint->{-2,-2,0} 左角
ViewPoint->{2,-2,0} 右角
ViewPoint->{0,0,2} 正上方
为了用户更方便地选择观察点,可以用视点选择对话框进行。方法如下:首先,输入
Show[%,¬¬_ ]
让光标暂时停留在下划线处,用鼠标单击Mathematica菜单中的“Input”,从下拉菜单中选取“3D ViewPoint Selector”,将出现视点选择对话框。在对话框中,有三个按钮分别可用于调整 x 方向、 y 方向、 z 方向的参数,对不同的参数,一个表示从不同角度观察图形的六面体也随之变动。可以用鼠标拖动三个按钮,观察六面体的位置变动直到合适为止。然后,用鼠标单击按钮 Paste 将x 方向、 y 方向、 z 方向的参数数据粘贴到Show命令的选项中。
另外还可选择球体坐标的方式进行视角调整。
3. 参数形式(parametric)作图
(1) 二维参数作图
ParametricPlot[参数形式函数,{自变量,下限,上限},选项]
例,单位圆的参数形式为
则画圆操作如下: ParametricPlot[{Cos[t],Sin[t]},{t,-Pi,Pi}]
注:画出的圆并非圆形,是因为系统设置高宽比例AspectRatio为1/ GoldenRatio。修正办法:更改选项设置如下
ParametricPlot[{Cos[t],Sin[t]},{t,-Pi,Pi},AspectRatio -> Automatic]
(2) 三维参数作图
ParametricPlot3D[参数形式函数,{自变量1,下限,上限},{自变量2,下限,上 限},,选项]
例,单位球的参数形式为
操作如下:
ParametricPlot3D[{Sin[u]Cos[v],Sin[u] Sin[v],Cos[v]},{u,-Pi,
Pi},{v,-Pi,Pi}]
4. 数据作图(点图)
(1) 二维数据作图
二维数据表的形式 意义
{{x1,y1},{x2,y2},…..} 数据点{xi,yi},i=1,2,…..n
{y1,y2,y3,…….} 数据点{i,yi},i=1,2,…..n
变量 变量的值为一组数据
ListPlot[二维数据表,选项]
例:ListPlot[{{0.1,0.2},{0.3,0.7},{0.5,0.8},{1,0.9}}]
或 L={{0.1,0.2},{0.3,0.7},{0.5,0.8},{1,0.9}}
ListPlot[L]
(2) 三维数据作图
三维数据表的形式 意义
{{x1,y1,z1},{x2,y2,z2},…..} 数据点{xi,yi,zi},i=1,2,…..n
变量 变量的值为一组数据
ListPlot3D[三维数据表,选项]
例:ListPlot3D[{{0.1,0.2,0.3},{0.3,0.7,0.6},{0.5,0.8,0.9},{1,0.9,1}}]
或 L3={{0.1,0.2,0.3},{0.3,0.7,0.6},{0.5,0.8,0.9},{1,0.9,1}}
ListPlot3D[L3]
其他作图函数:
ContourPlot[ ], DensityPlot[ ],ListContourPlot[ ], ListDensityPlot[ ]
PolarPlot[ ], BarChart[ ], PieChart[ ], SphericalPlot[ ]
5. 图形元素
(1) 二维图形元素:
图形元素要与Graphics[ ]合用,但不显示图形,需用Show[ ],例如:
In[1]:=Graphics[{Line[{{-1.5,-1.5},{1.5,1.5}}]
(*连接(-1 .5,-1.5)和(1.5,1.5)的线段*)
Out[1]:=--- Graphics--- (不显示)
In[2]:=Show[%]
Out[2]:= --- Graphics---
绘制基本图形元素时,制作点元、线元、多边形填充元等命令列表如下:
Line[{{x1,y1},{x2,y2},……}] 作(x1,y1)、(x2,y2)……多点连线
Point[{x,y}] 在坐标(x,y)处作点
PointSize[d] 配合Point确定大小为d的点
Rectangle[{x1,y1},{x2,y2}] 点(x1,y1)和(x2,y2)为对角线坐标作矩形
Circle[{x,y},r] 作圆心为(x,y),半径为r的圆
Circle[{x,y},{a,b}] 作长半轴为a,短半轴为b的椭圆
Circle[{x,y},r,{t1,t2}] 作弧度t1到弧度t2的圆弧
Circle[{x,y},{a,b},{t1,t2}] 作弧度t1到弧度t2的椭圆弧
Disk[{x,y},r] 作圆心为(x,y),半径为r的填充圆
Polygon[{{x1,y1},{x2,y2},……}] 以点(x1,y1)、(x2,y2)……为顶点的多边形
三维图形元素:
三维空间中的图形元素除了点、线外,还有空间的多边形、立方体。利用三维空间图形元素作图与平面作图一样,分三步进行。以绘空间三角形为例,第一步,用命令Polygon作三角形元素;第二步,用命令Graphics3D绘三角形;第三步,用Show命令将空间三角形显示出来。下面列出制作常用三维图形元素的命令
Point[{x,y,z}] 在坐标(x,y,z)处作点元素
Line[{{x1,y1,z1},{ x2,y2,z2},…}] 作点(x1,y1,z1),( x2,y2,z2),…连线
Polygon[{{x1,y1,z1},{ x2,y2,z2},…}] 过多个点的填充多边形
Cuboid[{x1,y1,z1},{ x2,y2,z2}] 对角线点(x1,y1,z1),( x2,y2,z2)的立方体
几个图形说明
Graphics[ ], Graphics3D[ ], ContourGraphics[ ], DensityGraphics[ ], SurfaceGraphics[ ]
它们可相互转换。
6. 图形的组合显示
(1) 图形的合并显示
如果先后绘制了几个函数的图形,想把其中两个或多个函数图合并成一个图,则可以Show命令来完成,同时还可以定义一些选项。
Show[g1] 重新绘制图形( g1=Plot[函数,范围] )
Show[g1, g2 , …] 将多张图合并成一张图
Show[g1, option->options] 定义选项
(2)图形的格式化显示
如果希望多个图形左右或上下排成一长图而不重叠,则可以用GraphicsArray 命令
Show[GraphicsArray[{g1, g2, …}]] 将图形横向并排
Show[GraphicsArray[{ {g1}, {g2}, …}]] 将图形纵向排列
Show[GraphicsArray[{ {g1, g2, …}, …}]] 将图形以二维矩阵的形式排列2.2.2