有问题,不要怕!点击推文底部“
阅读原文
”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱
[email protected]
,我们会及时为您解答哟~
喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:
https://stata-club.github.io
,粉丝们可以通过该网站访问过去的推文哟~
大家都知道Stata的画图功能是十分强大的,我们可以通过设置各种选项来进行调整,得到自己所需要的图形。在之前的推文《
我来告诉你如何用stata做出漂亮的图形:柱状图的绘制
》中,我们介绍了
twoway bar
,它主要用来绘制
直方图
(横坐标的数据具有连续性)。那么,
条形图
(分组后的数据是分开排列)又是怎么绘制的呢?今天的这一篇推文教给大家的就是如何绘制
分组条形图
。
让我们从一个简单的例子开始吧,使用auto数据将所有的车分为国产车与进口车两组,绘制分组后各组平均汽车价格与车重的条形图:
sysuse auto,clear
graph bar price weight,over(foreign)
得到下图:
从上图我们可以得到,国产车与进口车的平均价格和重量。但是不可否认,上图不是一个漂亮的图形。那么怎么通过命令后的选项来进行调整呢?接下来,我们会给大家介绍graph bar 部分选项:
bargap(#)
可以设定组内条形之间所留空隙的大小。在默认情况,即
bargap(0)
,表示组内条形之间是紧密相连的(如上图所示),若设置参数为
bargap(10)
,则表示组内条形之间所留的空隙为条形宽度的10%。
程序:
graph bar price weight ,over( foreign ,relabel(1 "国产车" 2 "进口车")) bargap(10) bar(1, color(red) ) bar(2, color(green) )
得到:
另外若修改参数为
bargap(-30)
,则表示组内条形之间有宽度30%的重叠部分:
graph bar price weight ,over( foreign ,relabel(1 "国产车" 2 "进口车")) bargap(-30) bar(1, color(red) ) bar(2, color(green) )
得到:
gap()
一般与
over
结合使用,它设置的是组与组之间间隙的大小,如果设置为较大的间隙时,就会使得条形的宽度变窄,:
graph bar price weight ,over( foreign ,relabel(1 "国产车" 2 "进口车") gap(500)) bargap(10) bar(1, color(red) ) bar(2, color(green) )
其中,
gap(500)
表示的是国产车与进口车两组之间的空隙宽度是一个条形宽度的五倍。
得到:
可是上图的国产车与进口车两组相隔距离较远,同时离x轴的两端又太近了。
outergap(#)
可以控制最外侧条形与图形边缘的空隙大小,当然既然我们控制了outergap(#)和gap(#),就意味着条形的宽度会缩短:
graph bar price weight ,over( foreign ,relabel(1 "国产车" 2 "进口车") gap(500)) outergap(100) bargap(10) bar(1, color(red) ) bar(2, color(green) )
其中,
outergap(100)
表示最外侧的条形与图形边缘的空隙宽度等于一个条形的宽度
得到:
细心的朋友会发现最左侧的条形到纵轴的宽度明显比条形的宽度宽,这是为什么呢?因为当我们设置
outergap(0)
时,最左侧条形并不是与纵轴紧密连接的,而是默认有一小段空隙,所以若设置
outergap(100)
,它会在默认空隙长度的基础上再加上一个条形图的宽度。
另外,
outgap(*1.5)
表示扩大其空隙为原来的1.5倍,
outgap(*0.5)
表示缩小其空隙为原来的0.5,你们也可以动手试试哦。
由于篇幅的限制,我们只介绍了三个常用的选项,在下一篇推文中,我们将继续介绍
nofill
,
hbar
,
stack
这三个选项,以及如何绘制水平条形图,敬请关注!
以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。
另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~