喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.,粉丝们可以通过该网站访问过去的推文哟~ 大家都知道Stata的画图功能是十分强大的,我们可以通过设置各种选项来进行调整,得到自己所需要的图形。在之前的推文《我来告诉你如何用stata做出漂亮的图形:柱状图的绘制》中,我们介绍了twoway bar,它主要用来绘制直方图(横坐标的数据具有连续性)。那么,条形图(分组后的数据是分开排列)又是怎么绘制的呢?今天的这一篇推文教给大家的就是如何绘制分组条形图。 让我们从一个简单的例子开始吧,使用auto数据将所有的车分为国产车与进口车两组,绘制分组后各组平均汽车价格与车重的条形图: sysuse auto,clear graph bar price weight,over(foreign) 得到下图: 从上图我们可以得到,国产车与进口车的平均价格和重量。但是不可否认,上图不是一个漂亮的图形。那么怎么通过命令后的选项来进行调整呢?接下来,我们会给大家介绍graph bar 部分选项: 1.bargap(#) 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) ) 得到: 2.gap(#) 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)表示的是国产车与进口车两组之间的空隙宽度是一个条形宽度的五倍。 得到: 3.outergap(#) 可是上图的国产车与进口车两组相隔距离较远,同时离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,你们也可以动手试试哦。 |
|