我来告诉你如何用stata做出漂亮的图形:柱状图的绘制

2017-03-22 河南大学 赵政轩 爬虫俱乐部 爬虫俱乐部

哈喽,诸君安。

爬虫俱乐部第五届Stata编程技术培训报名已进入倒计时,想要参加培训但还没有报名的朋友,可得抓紧了哦!

在推文至忙至闲爬虫君,至繁至简散点图中提到一个问题,即如何做出以下图形:

我们在上篇推文中已经解决了散点图的部分,今天给大家介绍一下如何绘制柱状图。

柱状图绘制的语法结构

twoway bar yvar xvar [if] [in] [, options]

其中,yvar表示被解释变量;xvar表示解释变量

[, options]包括非常丰富的内容:vertical表示垂直作图,其stata的默认格式;horizontal表示水平作图;barwidth(#)表示设置柱体宽度;base(#)表示设定Y轴起始刻度等。

另 外, barlook_options为设定柱状图外观选项、 twoway_options为二维作图选项,其中包括了titles, legends, axes, added lines and text, by, regions, name等选项。

我们以河南省2016经济发展大数据为例:

·import excel using  D:\Stata14\爬虫俱乐部\河南省2016经济发展大数据.xlsx,firstrow clear

如果不加任何选项,stata默认做出来的图形如下所示:

·twoway bar 一般公共预算收入 year

运行结果如下图所示:

显然这个图形和我们想要得到的是有差距的,我们需要调整其柱体的颜色、宽度、坐标轴名称和刻度等,依然先上基础知识:

01定柱体颜色:color(colorstyle)


Stata中颜色分类是非常丰富的,比如black、white、blue、gray、orange等。具体颜色可根据个人喜好和作图需要来定。(读者可通过help colorstyle查找颜色分类)

02 定柱体宽度:barwidth(#)


stata默认宽度为1,一般使用0到1之间的宽度更合适,宽度笔者一般使用0.5,具体还依作图需要和个人喜好。

03设定坐标轴名称:ytitle(axis_title)、xtitle(axis_title)


它们的子选项很多,包括:

(1)axis(#) : 指定坐标轴,一般在双坐标轴中使用,#要和选择项中的yaxis(#)的#相同;

         也就是说,当选择项中出现yaxis(1)时,表示该画图命令画的纵坐标在图中的右侧,yaxis(2)表示在左侧;

由于ytitle是对指定的坐标轴设定名称的,所以需要我们指定对哪一个坐标轴设定名称,然后就有了ytitle子选择项中的axis(#)。如果对左侧的纵坐标轴命名,#为2,对右侧的话,#为1。

(2)prefix:在既有坐标名称的上面一行写入新的名称。

(3)suffix:在既有坐标名称的下面一行写入新的名称。

(4)textbox_options(文本框和内容定义选项):包含内容很多,由于篇幅有限,本文介绍一些实用的选项。

(5orientation():改变坐标名称的排列方向,一般常用两种horizontal水平从左向右读和vertical垂直从下往上读。

(6)placement():确定坐标轴名称的位置,placement(north)表示在最上方,south最下方,center正中间。


(1)color(colorstyle)和barwidth(#)

·twoway bar 一般公共预算收入 year,title("默认")

·graph save bar,replace

·twoway bar 一般公共预算收入 year,color(red) title("red")

·graph save cnbar,replace

·twoway bar 一般公共预算收入 year,barwidth(0.3) title("宽0.3")

·graph save wnbar,replace

·twoway bar 一般公共预算收入 year,color(red) barwidth(0.3) title("red宽0.3")

·graph save cwnbar,replace

·graph combine bar.gph cnbar.gph wnbar.gph cwnbar.gph

运行结果如下图:

(2)prefix和suffix

·twoway bar 一般公共预算收入 year,title("默认")

·graph save bar,replace

·twoway bar 一般公共预算收入 year,ytitle("亿元)",suffix) title("suffix")

·graph save suffix,replace

·twoway bar 一般公共预算收入 year,ytitle("亿元)",prefix) title("prefix")

·graph save prefix,replace

·graph combine bar.gph suffix.gph prefix.gph

·graph save 3,replace

运行结果如下图:

这样,我们就通过suffix选项将“(亿元)”放在已有y轴名称“一般公共预算收入”的下一行,prefix选项将“(亿元)”放在已有y轴名称“一般公共预算收入”上一行。

(3)orientation()

·twoway bar 一般公共预算收入 year,ytitle("亿元")title("默认")

·graph save bar,replace

·twoway bar 一般公共预算收入 year,ytitle("亿元)",orientation(horizontal))

·title("orientation(horizontal)")

·graph save oh,replace

·twoway bar 一般公共预算收入 year,ytitle("亿元)",orientation(vertical)) ·title("orientation(vertical)")

·graph save ov,replace

·graph combine bar.gph oh.gph ov.gph

运行结果如下:

(4)placement()

·twoway bar 一般公共预算收入 year,ytitle("亿元")title("默认")

·graph save bar,replace

·twoway bar 一般公共预算收入 year,ytitle("亿元"),placement(north))title("placement(north)")

·graph save pn,replace

·twoway bar 一般公共预算收入 year,ytitle("亿元"),placement(center))title("placement(center)")

·graph save pc,replace

·twoway bar 一般公共预算收入 year,ytitle("亿元"),placement(south))title("placement(south)")

·graph save ps,replace

·graph combine bar.gph pn.gph pc.gph ps.gph

运行结果如下:

如上图所示,坐标名称上中下位置依次对应north、center和south。

04设定坐标轴的刻度:ylabel(rule_or_values)、xlabel(rule_or_values)


  其子选项很多,这里我们只列出几个比较常用的选项:

(1)axis(#)(同设定坐标轴名称子选项axis(#)含义相同)

(2)format(%fmt)(设定坐标刻度的显示格式,常用%9.1f表示小数点后一位)

(3)angle(anglestyle)(设定坐标刻度的排列方向(horizontal水平方向从左往右和vertical垂直方向从下往上)


基础知识讲完了,我们来尝试一下来作出我们想要的图形,程序如下:

·twoway bar 一般公共预算收入 year,color(midblue)  barwidth(0.3)

    ylabel(0(500)3500,angle(horizontal)) ///

    xlabel(2010(1)2016) ytitle(亿元,angle(horizontal) orientation(horizontal)

    placement(north))

运行结果如下:

这样,最终我们就得到了文章开头图表中的柱状图了,离目标图形越来越近了!那么怎么把散点图和柱状图放在一个图形中呢?以及双坐标轴怎么使用呢?之后的推文中我们将对这部分内容进行详细介绍。请继续关注爬虫俱乐部哦!!


以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

文字编辑:司海涛

技术总编:刘贝贝



往期推文推荐:

1.中国高校财经、管理与综合类期刊灌水排行榜

2.关于RTF你不知道的命令

3.关于RTF你不知道的命令之番外篇

4.免费事件研究,一片片从邮局寄来

5.免费的股价同步性,一片片从邮局寄来

6.Stata叫你回家听音乐了!

7.一言不合就用stata写邮件(Outlook/Foxmail)

8.听说你想知道怎么用stata画地图?

9.I have a Stata, I have a python

10.I have a Stata, I have a Python之二——pdf转word




关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部




微信扫一扫
关注该公众号