楼主: niuniuyiwan
12196 13

[Stata] Stata基础操作:绘图(三) [推广有奖]

  • 7关注
  • 91粉丝

VIP

学科带头人

89%

还不是VIP/贵宾

-

威望
0
论坛币
12644 个
通用积分
1551.1638
学术水平
1116 点
热心指数
1164 点
信用等级
1058 点
经验
8347 点
帖子
1625
精华
1
在线时间
2447 小时
注册时间
2010-10-10
最后登录
2024-4-26

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

Stata 12 Graphics

Dawn Koffman

Office of  Population Research  

Princeton University


前言.PNG

矩阵关系图、循环语句图.rar (838 Bytes) 本附件包括:

  • 矩阵关系图、循环语句图.do


输入数据,修改标签

  1. clear  
  2. input  str14   country    tvhome birth5years idealnum age1stbirth school agemarriage
  3.             bangladesh     33.9     .6        2.3         17.7     4.5    15.2
  4.             bolivia        74.8     .8        2.6         20.3     7.6    20.1
  5.             colombia       93.4     .4        2.4         20.7     8.6    20.3
  6.             dr             83       .5        3.2         19.9     8.6    18.3
  7.             egypt          95.9     .7        2.9         21.3     7.3    19.7
  8.             haiti          27.9     .8        3.2         20.7     4.3    19.4
  9.             india          47.9     .6        2.4         19.2     4.3    17.1
  10.             indonesia      74       .5        2.8         20.7     7.5    19.3
  11.             morocco        66.6     .7        3.3         21.4     2.7    19.6
  12.             nepal          50.7     .6        2.2         19.6     3.6    17.4
  13.             pakistan       57.8     .9        4.1         20.5     2.8    18.4
  14.             peru           78.1     .6        2.5         21.1     8.8    20.6
  15. end
复制代码
  1. label variable tvhome "TV at home (%)"
  2. label variable school "years of school"
  3. label variable birth5years "births in last 5 years"
  4. label variable idealnum "ideal number of children"
  5. label variable age1stbirth "age at first birth"
  6. label variable school "years of school"
  7. label variable agemarriage "age at first marriage"
复制代码
变量标签

矩阵关系图:

基本格式 graph matrix variable1 variable2 variable3, graph_options

Graph options:
  1. /*        
  2. half                 展示一半,分析对比较易
  3. by(groupingvariable) 使用分组变量,注意先排序
  4. jitter(#)            大数据集用     
  5. 技巧:msymbol(p)     数据集较大时 point
  6. msize(choice)        标记符号 [可选vtiny,tiny,small,medsmall,medium,medlarge,huge,vhuge,large,vlarge,ehuge]
  7. */
复制代码
  1. #delimit ;
  2. local note  "Source: Most recent DHS std survey: bangladesh bolivia colombia dr egypt
  3. haiti india indonesia morocco nepal pakistan peru, as of 5/2013";
  4. graph matrix school tvhome idealnum agemarriage age1stbirth birth5years,
  5. half note("`note'", size(vsmall));
  6. #delimit cr
复制代码

Creating a Matrix of Scatterplots.png

关闭half,显示另一半


  1. #delimit ;
  2. local note  "Source: Most recent DHS std survey: bangladesh bolivia colombia dr egypt
  3. haiti india indonesia morocco nepal pakistan peru, as of 5/2013";
  4. graph matrix school tvhome idealnum agemarriage age1stbirth birth5years,
  5. note("`note'", size(vsmall));
  6. #delimit cr
复制代码

Graph.png



使用循环语句画图:

school_agemarriage.png

school_age1stbirth.png

school_agemarriage.png

school_birth5years.png

school_idealnum.png

tvhome_age1stbirth.png

tvhome_agemarriage.png

tvhome_birth5years.png

tvhome_idealnum.png

  1. #delimit ;
  2. local sample MARRIED;
  3. local note  "Source: Most recent DHS standard survey, as of 5/2013"; foreach x in school tvhome {;
  4. foreach y in idealnum agemarriage age1stbirth birth5years {;
  5. twoway scatter `y' `x', mlabel(country) mlabsize(large) ylabel(, angle(0)) note("`note'") name("`x'_`y'", replace); graph export `x'_`y'_`sample'_mostrecent.emf, replace;
  6. };
  7. };
  8. #delimit cr
复制代码
将多个直方图同时保存到一张图的方法:
  1. //Combining many graphs on a page
  2. sysuse auto, clear
  3. graph drop _all
  4. drop make
  5. foreach i of varlist _all{
  6.         capture confirm numeric variable `i' if _rc==0
  7.         histogram `i', name(`i')
  8.         local z "`z' `i'"
  9.         graph combine `z'
  10. }
复制代码

Graph.png


3.核密度图
  1. clear all
  2. sysuse auto
  3. kdensity length, bw(20)
复制代码
叠加核密度图方法一:(https://bbs.pinggu.org/thread-3606957-1-1.html)感谢蓝色版主
  1. sysuse auto,clear
  2.      kdensity price  if foreign==0 ,  addplot(   ///
  3.      kdensity price  if foreign==1   )               ///
  4.      legend(label(1 "国内") label(2 "国外") col(2))
复制代码
叠加核密度图方法二:
  1. sysuse auto,clear

  2.        tw     (kdensity price  if foreign==0)          ///
  3.                 (kdensity price  if foreign==1) ,       ///  
  4.                  legend(label(1 "国内") label(2 "国外") col(2))
复制代码

Graph.png



面积图:注:只有在线图下的面积部分具有理论及分析意义时使用。
  1. sysuse auto, clear        
  2. summarize price, mean
  3. local mean = r(mean)
  4. kdensity price, gen(x h)
  5. line h x, || area h x if  x < `mean'
复制代码

Graph.png

  1. sysuse gnp96, clear
  2. #delimit ;

  3. twoway area d.gnp96 date, xlabel(36(8)164, angle(90))
  4.   ylabel(-100(50)200, angle(0))
  5.   ytitle("Billions of 1996 Dollars")
  6.   xtitle("")
  7.   subtitle("Change in U.S. GNP", position(11))
  8.   note("Source: U.S. Department of Commerce, Bureau of Economic Analysis")
  9.   ;
  10. #delimit cr
复制代码

Graph.png





//左右同时浮现且保持标题简洁的操作技巧:
//添加xtitle("")
  1. sysuse auto,clear
  2. sort foreign
  3. set scheme lean1
  4. histogram rep78, discrete by(foreign) percent   ///
  5. addlabels xlabel(1 "1" 2 "2" 3 "3" 4 "4" 5 "5") ///
  6. gap(25) title("Repair Record in 1978") xtitle("")
复制代码

A12.png


在下端回避Repair Record in 1978






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata基础 Stata 基础操作 tata Bangladesh University country school 标签

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
玄一无相 + 100 + 2 + 2 + 2 观点有启发
xddlovejiao1314 + 100 + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 200  论坛币 + 100  学术水平 + 7  热心指数 + 7  信用等级 + 7   查看全部评分

本帖被以下文库推荐

沙发
xddlovejiao1314 学生认证  发表于 2015-7-13 10:49:20 |只看作者 |坛友微信交流群
好贴,谢谢分享,再接再厉。
已有 1 人评分经验 论坛币 收起 理由
niuniuyiwan + 10 + 5 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 5   查看全部评分

使用道具

藤椅
玄一无相 在职认证  学生认证  发表于 2015-10-2 21:02:23 |只看作者 |坛友微信交流群
楼主,这里第一句话的时候申明str14的意义在哪里
已有 1 人评分经验 论坛币 收起 理由
xddlovejiao1314 + 10 + 3 鼓励积极发帖讨论

总评分: 经验 + 10  论坛币 + 3   查看全部评分

使用道具

板凳
玄一无相 在职认证  学生认证  发表于 2015-10-2 21:14:52 |只看作者 |坛友微信交流群
还有这个核密度图里面第一行clear all与正常的clear的差别大不大?
已有 1 人评分经验 论坛币 收起 理由
xddlovejiao1314 + 10 + 3 鼓励积极发帖讨论

总评分: 经验 + 10  论坛币 + 3   查看全部评分

使用道具

报纸
niuniuyiwan 在职认证  发表于 2015-10-3 09:27:40 |只看作者 |坛友微信交流群
玄一无相 发表于 2015-10-2 21:02
楼主,这里第一句话的时候申明str14的意义在哪里
您好,对于字符型变量在录入时往往需要先定义变量长度,如这里的country:变量值最长为14个字符,其余数值型变量按照默认或者profile.do里面预设的存储格式录入。
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xddlovejiao1314 + 10 + 10 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

地板
niuniuyiwan 在职认证  发表于 2015-10-3 09:35:13 |只看作者 |坛友微信交流群
玄一无相 发表于 2015-10-2 21:14
还有这个核密度图里面第一行clear all与正常的clear的差别大不大?
您好,在绘图时,clear all在clear清除内存数据和标签的基础上,同时会将现有绘制的图形窗口关闭。
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xddlovejiao1314 + 10 + 10 + 1 + 1 + 1 精彩帖子
玄一无相 + 2 + 2 + 2 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 10  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

7
niuniuyiwan 在职认证  发表于 2015-10-10 22:19:36 |只看作者 |坛友微信交流群
  1. //twoway function_UCLA Graph library example
  2. * 将原normden修正为normalden

  3. #delimit ;
  4. twoway
  5.   function y=normalden(x), range(-4 -1.96) bcolor(gs12) recast(area) ||
  6.   function y=normalden(x), range(1.96 4) bcolor(gs12) recast(area) ||
  7.   function y=normalden(x), range(-4 4) clstyle(foreground) ||,
  8.   plotregion(style(none))
  9.   yscale(off) xscale(noline)
  10.   legend(off)
  11.   xlabel(-4 "-4 sd" -3 "-3 sd" -2 "-2 sd" -1 "-1 sd" 0 "mean"
  12.   1 "1 sd"   2 "2 sd"   3 "3 sd"   4 "4 sd", grid gmin gmax)
  13.   xtitle("")
  14.   ;
  15. #delimit cr
复制代码

Graph.png



使用道具

8
niuniuyiwan 在职认证  发表于 2015-10-15 11:23:59 |只看作者 |坛友微信交流群
  1. sysuse lifeexp, clear
  2. gen lgnppc = ln(gnppc)
  3. gr matrix popgr lexp lgnp safe
复制代码

Graph.png



使用道具

9
niuniuyiwan 在职认证  发表于 2015-10-15 11:24:46 |只看作者 |坛友微信交流群
  1. sysuse lifeexp, clear
  2. generate lgnppc = ln(gnppc)
  3. graph matrix popgr lgnp safe lexp, half
复制代码

Graph.png



使用道具

10
niuniuyiwan 在职认证  发表于 2015-10-15 11:25:35 |只看作者 |坛友微信交流群
  1. sysuse lifeexp, clear
  2. generate lgnppc = ln(gnppc)
  3. graph matrix popgr lgnp safe lexp, maxes(ylab(#4, grid) xlab(#4, grid))
复制代码

Graph.png



使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 04:17