哈喽,诸君安。在之前的推文中,我们介绍了散点图和柱状图的画法,可是怎么把两个图形放在一个图中呢?这就是所谓的图形混搭,这个问题迟迟没有介绍,但是好菜不怕晚!今天,小编就给大家解决这个问题。
首先,导入数据:
·import excel using D:\Stata14\爬虫俱乐部\河南省2016经济发展大数据.xlsx,firstrow clear
目的导向:利用上述数据作出以下图形:
绘制柱状图和散点图的部分我们已经解决了。而把两种图形放到一个图中需要用到双坐标轴。所有作图命令的选项中都包含了axis_choice_options这一项,其有yaxis和xaxis两个选项。
我们以y轴为例,用yaxis是在确定y轴的相对位置,yaxis(2)表示左侧,yaxis(1)表示右侧。(当你在选择项中使用yaixs(1)时,对应的ylabel和ytitle要在子选择项使用aixs(1)与之对应)
注意:两种画图命令是通过命令中的 “||”连接在一起的。“||”之前的所有命令对应一个图,之后的所有命令对应另一个图。“||”与两个命令之间有没有空格都可以。
程序如下:
·twoway bar 一般公共预算收入 year,yaxis(2) ylabel(,axis(2)) ytitle(亿元,axis(2)) || ///
scatter 增速 year,yaxis(1) ylabel(,axis(1)) c(l) xlabel(2010(1)2016) ytitle(%,axis(1))
显 然“||”之前的命令做柱状图,之后的命令做散点图。柱状图命令中yaxis(2)表示柱状图相对散点图而言纵坐标在左侧,ylabel、ytitle的 选择项axis(2)对应左侧纵坐标轴,并对左侧的纵坐标轴进行刻度和坐标轴名称的设定。同理,散点图命令中yaxis(1)表示散点图相对于柱状图而言 纵坐标在右侧, ylabel、ytitle的选择项axis(1)对应右侧纵坐标轴,并对右侧的纵坐标轴进行刻度和坐标轴名称的设定。
到此,我们已经介绍了柱状图、散点图的绘制方法以及如何在一个图中绘制两种图形,结合之前推文中的介绍,我们通过以下程序作出目标图形:
·twoway bar 一般公共预算收入 year,yaxis(2) color(midblue) barwidth(0.3) ///
ylabel(0(500)3500,axis(2) angle(horizontal)) ytitle(亿元,axis(2) orientation(horizontal) placement(north)) || ///
scatter 增速 year,m(T) mc(midgreen) lc(midgreen) lwidth(0.5) yaxis(1) c(l) ///
mlabel(" 增速") mlabposition(12) mlabcolor(black) xlabel(2010(1)2016) ylabel(0(5)25,axis(1) angle(horizontal) format(%9.1f)) ytitle(%,axis(1) placement(north))
运行结果如图所示:
好了,已经很接近目标图形,目标图形的图例在上方,而上图的图例在下方。如何改变图例的位置呢?接下来,我们讲一下图例的设定:
legend([contents] [location])
legend包括两部分:contents为图例内容;location为图例位置。
(2)color(colorstyle)图例的边框线和填充区域的颜色;
(3)fcolor(colorstyle)图例填充区域的颜色;
(4)lstyle(linestyle)图例的边框整体样式,包括边框的颜色、厚度和样式。
(5)lcolor(colorstyle)图例边框颜色;
(6)lwidth(linewidthstyle)图例边框厚度;
(7)lpattern(linepatternstyle)图例边框线的样式;
(8)margin(marginstyle)图例到边框的距离。
(1) off和on,分别表示关闭图例和显示图例。
(2) position(clockposstyle)图例出现的位置,clockposstyle 取0-12,分别代表钟表刻度的位置,比如pos(12)表示图例在图的正上方。
ok,到这里,我们作图的基本命令介绍完毕,整个作图程序如下:
·twoway bar 一般公共预算收入 year,yaxis(2) color(midblue) barwidth(0.3) ///
ylabel(0(500)3500,axis(2) angle(horizontal)) ytitle(亿元,axis(2) orientation(horizontal) placement(north)) || ///
scatter 增速 year,m(T) mc(midgreen) lc(midgreen) lwidth(0.5) yaxis(1) c(l) ///
mlabel(" 增速") mlabposition(12) mlabcolor(black) xlabel(2010(1)2016) ylabel(0(5)25,axis(1) angle(horizontal) format(%9.1f)) ytitle(%,axis(1) placement(north)) ///
legend(on position(12) region(color(none)))
运行结果如图所示:
以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~
文字编辑:司海涛
技术总编:刘贝贝
往期推文推荐:
7.一言不合就用stata写邮件(Outlook/Foxmail)
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分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。
欢迎关注爬虫俱乐部
微信扫一扫
关注该公众号