G4. 函数图
整理人: 郭楚玉 (武汉大学)
邮箱: julieguo@whu.edu.cn
我们通常利用函数图来完成两个基本的目的:
- 在理论分析过程中已知两个变量之间的函数关系,比如二次曲线、三角函数等。我们可以利用函数图直观的呈现出这种关系。
- 对于一些随机变量,我们可以利用它们的密度函数图来呈现出它的分布特征。
1. 函数图概览
我们常用 twoway function
命令来绘制函数图。比如,绘制一个最简单的函数 \(y=x\) 。Stata 画出的图的纵横比不是 1:1 ,显示的不是一个正方形。aspect(1)
选项可以解决这个问题。具体示例如下:
twoway function y = x
twoway function y = x, aspect(1)
在 Stata 默认的情况下,x 的取值范围是 0-1 之间。 range
选项可以改变 x 的取值范围。可以呈现出更完整的二次曲线形状。 xline
选项可以给该图增加一条蓝色虚线的对称轴。 具体 Stata 命令操作和图案效果如下:
twoway function y = -2*x^2 + 8*x + 10
twoway function y = -2*x^2 + 8*x + 10, range(-10 10)
twoway function y = -2*x^2 + 8*x + 10, range(-10 10) xline(2, lpattern(dash) lcolor(blue))
2. 多幅函数图叠加
Stata 可以画出多种随机数分布的密度曲线,我们画一个 t 分布的密度函数曲线为例。
twoway (function Normal = normalden(x), range(-8 8)) ///
function t20 = tden(20,x), range(-8 8)) ///
(function t3 = tden(3 ,x), range(-8 8)) ///
(function t1 = tden(1 ,x), range(-8 8)), ///
(legend(col(1) position(1) ring(0) size(*1.1)) ///
xtitle("t distribution", margin(t+2) size(*1.3))
图五中有四条曲线,分别是一条正态分布曲线,其它三条是自由度分别为 20, 3, 1 的 t 分布曲线。命令中的 legend
选项是设定图例样式的; size
可以调节字体大小为默认值的多少倍 (示例中是 1.1 倍);margin (t+2)
可以将图片标题与 x 轴拉开一定的距离。
3. 添加特殊字符和文字
Stata 中添加字符,是用简写的代码对应具体的希腊字母,代码书写并不直观。 在 help graph text
命令下,打开蓝色字体的 text 可以阅读详细 PDF 文档。
下面我们绘画一个卡方分布的曲线:
twoway function y = gammaden(3/2,2,0,x), range(0 10) ///
title("{&chi}{sup:2}(3) distribution")
注意此处卡方分布的书写方式,就是引用了对应的代码。
我们也可以用 text
选项为图中的多条曲线加注名字。 text
后括号中的前两个数值,分别对应所附加文字的纵坐标和横坐标。具体数值大小需用肉眼判断位置,调试几次后即可。具体命令和图片示例如下:
twoway ///
function chi1 = gammaden(1/2,2,0,x), range(0 10)) ///
(function chi3 = gammaden(3/2,2,0,x), range(0 10)) ///
(///
, legend(off) ///
subtitle("{&chi}{sup:2} distribution", ///
margin(t+2) size(*1.3)) ///
text(1.5 0.4 "{&chi}{sup:2}(1)") ///
text(0.3 0.4 "{&chi}{sup:2}(3)")