查看原文
其他

至忙至闲爬虫君,至繁至简散点图

河南大学 赵政轩 Stata and Python数据分析 2022-03-15

哈喽,诸君安。

近日爬虫俱乐部在筹办第五届Stata编程技术培训事宜,可给忙坏了,每天过得都像打机关枪,due~due~due~

然而再忙,爬虫君都会忙里偷闲,与虫宝宝们探讨交流,做你的贴心军大衣~

前不久有位朋友向公众号提问了一个问题:如何用stata作出如下图形

乍一看,是一个非常简单的图形,可是里边可是藏着很多命令呢!大家可不要小觑。由于命令牵扯到散点图、柱状图、双坐标轴等。

篇幅限制,我们将通过四篇推文介绍有关作图的命令,以解决这个问题。今天,小编先给大家介绍一下散点图的绘制。


散点图绘制的语法结构

[twoway] scatter varlist [if] [in] [weight] [, options]

其中,varlist表示变量名称;[, options]包括非常丰富的内容:marker_options(更改标记的外观:颜色和外形)、marker_label_options(添加标签,更改外观和位置)、connect_options(改变点与点之间连接线条的外观和方式)、composite_style_option(绘图的整体格式)axis_choice_options(坐标轴选项)等。

笔者在此只是先简要介绍选择项的大概种类,接下来的一些基本命令还需要从以上各个分类中寻找


我们先来看一下stata默认的作图格式(左图):

左图为stata默认的作图格式,右图使我们想要得到的结果。我们需要做的是调整散点的形装和颜色、连接线的颜色和形状等,从基础知识开始:

01connect(#)设定连接线的形状


#包括:none(无线)、direct(直线连接)、ascending(直线连接,但是横轴变量必须由小到大排列。

从下图中我们看最后一个表,笔者把原来数据中的2010年改为2011年、2011年改为2010年,结果发现ascending默认只能从小到大)、stairstep(先水平在垂直链接)和stepstair(先垂直再水平)。

其中前四种在stata命令中可以由简单的字母替代,分别是i、l、L和J,也就是说,当你想使用connect(direct)直线连接各个点时,你可以把里面的direct替换成l,两者效果一样。

连接线的五种形式,笔者放到一个图表中给大家展示出来,如下图:

connect(#)可以从connect_options中找到。

02设定线的粗细和颜色


(1)lwidth(linewidthstylelist)设定线的粗细;

(2)lcolor(colorstylelist)设定线的颜色。

它们可以通过help scatter找到options中的connect_options选项,点击进入connect_options里面就有lwidth(linewidthstylelist)和lcolor(colorstylelist)。

常用的线宽为0.5,颜色嘛,看大家的喜好啦。例如红色的

03设定点的形状和颜色


(1) msymbol(symbolstylelist)设定点的形状,主要有cricle(圆形)、diamond(菱形)、triangle(三角形)和square(正方形)。在stata命令中分别由O、D、T、S替代。

(2) mcolor(colorstylelist)设定点的颜色。

它俩可以通过help scatter找到options中的marker_options选项,点击进入marker_options里面有很多,这里我们就使用了两个。

举例:m(T) mc(green)

04设定标签值及其位置、字体大小、字体颜色



(1) mlabel(varlist)指定标签变量。

(2) mlabposition(clockposlist)标签值的位置,0-12,分别代表钟表刻度的位置,比如mlabp(12)表示在标签的正上方。

(3) mlabsize(textsizestylelist)标签值的字体大小。

(4) mlabcolor(colorstylelist)标签值的字体颜色。

它们可以在marker_label_options中找到。mlabelsize字体大小一般为默认值。

举例:

好了,基础知识讲完了,开始作图,程序如下如下:

scatter 增速 year,msymbol(T) mcolor(midgreen) lcolor(midgreen) lwidth(0.5) connect(l) ///

mlabel("增速") mlabposition(12) mlabcolor(black) xlabel(2010(1)2016) ylabel(0(5)25,angle(horizontal) format(%9.1f)) ytitle(%,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分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存