查看原文
其他

Stata绘图系列——条形图绘制

爬虫俱乐部 Stata and Python数据分析 2023-10-24

本文作者:陈志林,河南大学经济学院

本文编辑:王思雨

技术总编:李婷婷

Stata and Python 数据分析

爬虫俱乐部Stata基础课程Stata进阶课程Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~
01
导读

在统计分析中经常会用条形图来描述变量的基本特征,使得数据更加清晰直观。借助Stata我们可以绘制出各式各样的条形统计图,实现这一功能的命令为graph bar,基本命令格式如下:

graph bar (statistics) variablelist,over(category)
  • statistics:目标统计量;
  • over( ):目标分组变量;

02
基本绘制

我们利用City temperature data数据citytemp.dta来对命令graph bar的功能进行讲解。



描述变量tempjan和tempjuly的均值特征



clear all sysuse citytemp,clear //引入数据graph bar (mean) tempjan tempjuly

graph bar计算出tempjan和tempjuly两个变量的均值,并用两个直条展示了两个均值的差异。其中蓝色代表1月,红褐色代表7月。当然,我们也可以展示其他统计量,比如样本量(count)、最小值(min)、最大值(max)、中位数(p50)、标准差(sd)等等。

按某变量分类绘制


graph bar (mean) tempjan tempjuly,over(region) //按变量region进行分类描述均值

图中graph bar按照四个region分别计算出其对应的1月和7月的平均气温并通过四对直条展示。  

其中横坐标NE的全称是North East,如果觉得NE不太直观可以借助over( )选项中的relabel子选项进行横坐标的设置:

graph bar (mean) tempjan tempjuly, over(region,relabel(1 "North East" 2 "North Central" 3 "South" 4 "West")) //将条形图中的横坐标标签分别设置为("North East""North Central""South""West")

设置图例

为了追求美观我们可以给条形图设置一个标题“Mean Temperature”,同时将图例铭文改为强调January还是July。

graph bar (mean) tempjan tempjuly, over(region) ///legend(title("Mean Temperature") label(1 "January") label(2 "July"))

标注与间距

如果我们想更加详细直观的知道每个直方条的高度,我们可以加入blabel(bar)选项。

如果我们还想让两个变量之间隔开一段空隙,方便观察的话,可以加入gap( )选项的一个命令:bargap( )

graph bar (mean) tempjan tempjuly,over(region,relabel(1 "North East" 2 "North Central" 3 "South" 4 "West")) ///legend(title("Mean Temperature") label(1 "January") label(2 "July")) blabel(bar) bargap(5)


03
自定义坐标轴
更改Y轴显示格式

更改Y轴显示格式,使用ylabel选项即可,通过子选项labsizelabcolorangle可分别更改坐标轴标签的大小、颜色和角度,对应命令如下:

graph bar (mean) tempjan tempjuly,over(region) legend(title("Mean Temperature") label(1 "January") label(2 "July")) ///ylabel(0(20)80,labsize(large) labcolor(red) angle(horizontal))

更改X轴显示格式

更改X轴的显示格式需要在over选项中通过定义子选项label来设置X轴的格式,其他与更改Y轴的命令相似。

graph bar (mean) tempjan tempjuly,over(region, label(labsize(mean) angle(45) labcolor(green))) ///legend(title("Mean Temperature") label(1 "January") label(2 "July"))


04
自定义配色

进一步改变条形图的配色,比如把7月的温度用红色,1月的温度用蓝色,可以通过在bar( )选项中添加color、fcolor、lcolor实现。

graph bar (mean) tempjan tempjuly,over(region) legend(title("Mean Temperature ") label(1 "January") label(2 "July")) /// bar(1, fcolor(red) lcolor(black)) bar(2, color(none) fcolor(blue) lcolor(black)) ytitle(Temperature)

我们得到下图,第一组即January的填充色为红色,边框色为黑色;第二组即July的填充色为蓝色,边框也设为黑色。

我们也可以追求便捷直接使用Stata提供的配色模板,即调用scheme选项选择模板。

graph bar (mean) tempjan tempjuly, over(region) legend(title("Mean Temperature") /// label(1 "January") label(2 "July")) scheme(sj) ytitle(Temperature)

条形图的基本绘制到这里就结束啦,之后的推文中我们还会进一步介绍条形图的进阶绘制,大家可以持续关注哦~


END重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。


对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!







往期推文推荐 pandas数据处理之合并与拼接

爬虫俱乐部新命令:cnkchart帮你绘制股票K线图!

Python常见内置函数(一)Stata绘图系列——饼形图绘制【爬虫实战】深交所服务业年报数据

“挂羊头卖狗肉”?

Python与excel交互--xlsxwriter模块

cnmapsearch——离公司最近的快餐店在哪

Python中的异常处理 Python交互式数据可视化——酷炫的Altair库 hk系列命令(3)—— hktrade hk系列命令(2)—— hkar hk系列命令(1)—— hkstock 超好用的字符串方法 基于Python的假设检验实现Stata与MySQL交互--基础操作 Jupyter Notebook中的魔术命令《Stata正则表达式》由中国金融出版社出版发行   
     关于我们 

   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



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

投稿邮箱:statatraining@163.com投稿要求:1)必须原创,禁止抄袭;2)必须准确,详细,有例子,有截图;注意事项:1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。



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

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