如何用Stata画等高线图

Updated: Jun 22

Stata拥有十分强大的画图功能. 今天, 我们要和大家分享如何用Stata画等高线.


等高线指的是地形图上高程相等的相邻各点所连成的闭合曲线, 并垂直投影到一个水平面上, 并按比例所绘在图纸上, 就得到等高线. 等高线也可以看作是不同海拔高度的水平面与实际地面的交线, 所以等高线是闭合曲线. 在等高线上标注的数字为该等高线的海拔. Stata里常用的绘制等高线的命令是twoway contour或者twoway contourline.


此次分析我们用到的数据是 sandstone.dta, 你可以从网上下载这个数据库. 这个数据库是有关于在一个特定的地理区域内, 砂岩在不同地理位置的地层分布. 在这个数据库中, 总共有四个变量, 分别是depth, 代表砂岩的深度; northingeasting 分别代表北和东两个方向; 以及type代表数据收集的不同种类 (measured, estimatedinterpolated).

在接下来绘制的等高线图中, x轴和y轴分别代表东 (Easting)和北 (Northing)两个方向, z轴代表的是砂岩的深度 (Depth). 接下来, 我们会为大家展示如何用Stata的程序语言来绘制等高线图.


1. 绘制最基本的等高线图

上图中为大家展示的是最基本的等高线图,使用的Stata命令是:

我们注意到不同的等高线区域颜色也不相同. 上图中, Stata默认地把深度分成了5个区域,从 7600到8100(ft). 这也引发了我们的进一步思考, 我们是不是可以人为地设定深度的区域数呢?


2. 通过使用levels()选项来人为设定组数

我们用到的Stata命令是:

我们可以看到, 在上图中, z轴所代表的Depth被分成了15个不同的区段. 这一处理使得等高线图可以更加准确和细化地反映真实的砂岩地层分布.


3. 人为控制等高线的组数, 组间距和颜色

通过使用ccuts()ccolors()选项, 我们可以改变变量的起始点, 组间距和不同等高线区域的颜色:

上图中, 我们把Depth分成了六组, 组间距是100, 每一组的颜色也是我们自行定义的. ccuts()ccolors()是两个非常实用的选项, 可以帮我们绘制更加个性化的等高线图. 但是在有些情况下, 变量(海拔)的跨度大, 这使得给每一个组设定一个颜色的难度加大了. Statascolor()ecolor ()选项可以使我们只需定义起始和终止的颜色, 中间区域的颜色Stata可以默认填充:

在以上命令中, scolor()定义的是起始的颜色,ecolor()定义的是终止颜色. 值得注意的是, 我们使用了crule()选项来结合这两个定义颜色的选项, 从而达到选择颜色的目的. 如图所示, 起始颜色是红色, 代表最浅层的砂岩; 终至颜色是黄色, 代表最深层处的砂岩. 随着地层深度增加, 颜色逐渐由红色趋向黄色.


4.使用twoway contourline命令来绘制等高线图

twoway contourlinetwoway contour类似,唯一的区别是用twoway contourline绘制出的图是简单的线条,并没有颜色的分布. 比如,在指令窗口输入:

我们会得到下图, 这是一幅非常简单的等高线图:


进一步地, 我们可以为等高线添加颜色, 为此我们使用的是colorlines选项:

类似地, ccolors(), scolor()ecolor()选项也可以和twoway contourline一起使用. 比如:

我们得到如下图所示的等高线图:



0 views

© 2020 by Survey Design and Analysis Services. 

  • LinkedIn
  • Facebook
  • Twitter
  • YouTube