Stata基础绘图教程

目录

引言

数据的导入与观察

单变量作图

单连续变量作图

1.箱图

2.直方图

单分类变量作图

1.饼图

2.柱状图

多变量作图

分类变量 X 分类变量

1.交叉表

分类变量 X 连续变量

1.柱状图:over 与 by

连续变量 X 连续变量

1.散点图

2.散点图与拟合线(图层概念)

3.折线图

连续变量 X 连续变量 X 连续变量

1.矩阵图

图形组合

教程索引


引言

这是一份Stata作图的入门级别教程,附带一些简单的可视化心得。

我在工作中学到了不少 Stata 的知识,已经迫不及待想分享给你们啦!当然,我试图把这份教程写得好玩,希望对各位能有所帮助 :)

数据的导入与观察

在 stata 里输入这行命令,你会获得一份 Stata 为你准备好的数据:

sysuse auto, clear //调用Stata的系统数据:auto

观察这组数据,你会发现一些变量是分类的(例如 rep78, foreign),另一些变量是连续的(例如price, mpg)。

在进行 stata 绘图时,我们需要考虑两个问题:

  1. 我们是针对一个变量还是多个变量作图?
  2. 变量(们)是分类的还是连续的?

我们将一一来看这些情况。

值得一提的是,我建议各位在作图时都采用 #delimit;的分行形式,这一命令表示 stata 只有遇到分号才会换行,其他情况都不会换行。而 #delimit cr 则表示取消这种分行形式。

采用这一分行形式作图的最大优点在于,我们可以将负责不同模块的命令按行分类,同时也便利给每行加上注释,使画图命令更加容易被读者理解。

在下面作图命令的示例中,也将一并演示这一分行方法的应用。

单变量作图

单变量作图被广泛运用在描述统计中。但很多时候必须仔细考量,因为单变量作图有时并不是可视化的好选择,甚至一些情景还不如直接摆上数据直观。

单连续变量作图

1.箱图

现在,我们想了解一下汽车的价格(price)是什么样的。一般而言,箱图(box)是单连续变量作图最广泛的应用。一起动手画一个吧:

graph box price

你将收获你的第一个(?)Stata 图形(好耶!),它长这样:

当然,你也可以罗列一些变量,来看看每个变量的分布如何。不过,为了保持可读性,这些变量的分布(第一四分位、中位数等等)不应该差太多。

现在,假如我们想了解汽车里程数(mpg)、行李箱空间(trunk)的分布,并且要稍微美化一下箱型图。

下面的图形会涉及这些知识点:风格设置、线型设置、颜色设置、标记点设置、去网格线、保存

别担心,我在每行命令后面都加上了注释:

#delimit ;

graph box mpg trunk, //逗号后面表示的是图形的option
    scheme(s1mono) //使用s1mono的酷炫黑白风格···(1)
    medline(lcolor(black) lwidth(thin)) //把中位数的线变为黑色,线型为 thin 
    box(1, lcolor(black) fcolor("232 69 69")) //第1个箱,框线黑色,填充的rgb值 ···(2)
    box(2, lcolor(black) fcolor("43 46 74 % 70")) //第2个箱,框线黑色,填充的rgb值与透明度
    marker(1, msymbol(oh)) //把第 1 个箱型图的离散值点设置为Oh形态 ···(3)
    ylabel(, nogrid) //去掉图形的网格线
    saving(haoye!!, replace); //把图片保存到本地,命名为haoye!!

#delimit cr

//(1)除此之外,stata还内置有s2mono风格,你还可以外部安装例如tufte, burd等风格模板。
//(2)输入 help colorstyle 以查看全部用法。注意 black%0 和 black*0 是不一样的,前者将是透明的。
//(3)输入 help symbolstyle 以查看全部用法。
// 此外,把 graph box 改为 graph hbox,可以得到横向的箱型图

你会获得一张看起来有内味儿了的图片:

输入命令 help graph box 可以查看更多自定义选项。

2.直方图

箱图展示的是比较宏观的分布。但如果我们想了解微观的内容,例如在这份样本中,每个价格区间有多少车呢?显然,箱图无法展示这个结果,这时用直方图(histogram)会清楚很多:

histogram price, freq //price的直方图,纵坐标是频次

默认图形看得真是让人脑阔疼,但别着急,我们有魔法。

接下来有这些知识点:标题设置、直方图起始点、直方图宽度与间距、直方图填充颜色、直方图线条颜色、直方图线条宽度

#delimit ;

histogram price,
    scheme(s1mono) //使用s1mono的酷炫黑白风格
    title("hist price") //标题hist price
    frequency //也就是freq,你也可以在这里填percent和fraction
    start(3000) //第一个柱子从3000开始
    width(1000) gap(5) //每个柱子宽1000,柱间距为5
    fcolor("155 164 180") //柱填充色rgb
    lcolor("120 122 145") //柱外框线rgb
    lwidth(medthin); //柱外框线线型medthin

#delimit cr

//直方图的其他知识:
//(1)bin(#)设置有几个柱子;但与width(#)不能共存
//(2)可以输入normal, kdensity加入曲线

经过修饰之后的直方图长这样,它可以很好地展示每千元区间内有多少汽车:

 输入命令 help histogram 可以查看更多自定义选项。

单分类变量作图

1.饼图

在类别不多的时候,饼图(pie)是个不错的选择。

这里我们还会开始接触作图的条件命令。比如说,我们想了解变量“1978年维修记录”(rep78),同时我们还想排除缺失值(缺失值被记为“.”)尝试输入这个命令:

graph pie if rep78 != ., over(rep78) //over(rep78)表示根据rep78的取值做切片

将会得到这样的图形:

请注意,饼图命令基本上都要通过 over 把变量括起来,关于 over 命令我们会在 分类变量 X 连续变量 那一部分更详细介绍。

如果直接写 graph pie rep78,将只能得到一个(发霉的蓝莓蛋糕)漂亮的蓝色圆。

 现在,我们例行装饰饼图,我们会开始接触知识点:副标题的设置、图例位置和排布的自定义、添加饼图标签、标签大小设置、更改不同饼块的颜色

#delimit;

graph pie if rep78 != ., 
    over(rep78)
    scheme(s1mono) //一直用它,怎会如此?
    title("pie reg78") //设置标题
    subtitle("a nice pie chart", size(*0.7)) //设置副标题࿰
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值