楼主: R2D
702 2

[程序分享] R2的STATA常用图形绘制方法总结 [推广有奖]

  • 0关注
  • 0粉丝

高中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
89.6199
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
220 点
帖子
21
精华
0
在线时间
25 小时
注册时间
2023-12-24
最后登录
2024-1-12

楼主
R2D 发表于 2024-1-8 23:37:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
clear all
cap log use
set more off

/*数据导入*/
import excel "X\XXX.xlsx", sheet("DATA") firstrow

/*查看导入数据描述*/
describe

/*查看导入数据描述性统计汇总*/
summarize

/*outreg2导出结果至word*/
//ssc install outreg2
outreg2 using X:\XXX1.doc, replace sum(log) title(Decriptive statistics)

/*生成汇总统计表格*/
tabstat var1, s(n mean sum range max min sd q50 var) c(s) //以统计结果为列,现实对应变了var1的统计结果

/*logout导出结果至word*/
//ssc install logout
logout,save(X:\XXX\XXX2)word replace:tabstat var1, s(n mean sum range max min sd p50 var) c(s)

/*一般绘图命令:graph 或 twoway*/
/*标准化正态概率图*/
pnorm var1

/*直方图 (Histogram)  展示数据的分布情况*/
histogram var1

/*箱线图(Box Plot)展示数据的分位数、异常值等*/
graph box var1

/*条形图(Bar Chart) 展示类别数据的频数或比例*/
graph bar var1, over(var2, descending label(angle(90)))

/*饼图(Pie Chart)  展示类别数据的比例*/
graph pie var1, over(var2) sort descending

/*散点图(Scatter Plot) 展示两个定量变量之间的关系*/
scatter var1 var2

/*线图(Line Graph) 展示数据随时间或有序类别变化的趋势*/
twoway line var1 time_variable

/*正态分布曲线图(Normal Distribution Plot) 检验数据是否近似正态分布*/
histogram var1, normal

/*累积分布图(Cumulative Distribution) - 展示变量值的累积频率*/
cumul var1, generate(cum_var1)
line cum_var1 var1, sort

/*正态分布分位数图:QQ图(Quantile-Quantile Plot) 用于比较数据分布和理论分布(如正态分布)*/
qnorm var1

二维码

扫码加我 拉你入群

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

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

关键词:Stata tata distribution cumulative Statistics stata绘图

沙发
R2D 发表于 2024-1-9 00:24:13
clear all
cap log use
set more off

/*导入数据*/
import excel "X:\X\X.xlsx", sheet("Sheet1") firstrow clear

/*导入数据后第一行作为变量标签*/
labone,nrow(1)

/*删除第一行*/
drop in 1

/*将字符型变量转换为数值型*/
destring var1 var2 var5- var10,replace
//tostring var3
//gen newvar1 = substr(var1,4,6)
//gen newvar2 = substr("XXXXXXXX",1,6)

/*描述性统计,看 Obs 的统计结果*/
sum

/*删除空缺的列*/
drop var1 var2 var3
drop if var1==.
egen A = rowmiss(_all) //删掉所有变量都没有值的样本
drop if A == 79 //一共79个var

/*茎叶图*/
stem var1

/*散点图*/
scatter  var1 var2, title("XXX")
scatter var1 var2 || lfitci var1 var2, level (90) nodraw saving(pic1, replace)

/*饼图 */
graph pie var1,over(prefecture) plabel(_all percent) b1title("XXX") note("数据来源:XXX") sort des ang(0) pie(6,explode) legend(label(1 "XXX")) legend(label(2 "XXX")) legend(label(3 "XXX")) legend(label(4 "XXX")) legend(label(5 "XXX")) legend(label(6 "XXX")) legend(label(7 "XXX")) legend(row(7) position(3) ring(1)) graphregion(fcolor(white)) nodraw saving(pic2, replace)

egen group_var1 = total(var1), by(var2) //计算每组var2之和
/*
饼图代码注释
plabel(_all percent)  显示百分比
sort des ang(0)  默认是顺时针, 从x轴方向开始降序排列, sort descending 降序排列 ang(0)表示从0度开始旋转
pie(6,explode) 顺时针数第6个,切片单独出来
legend 对图例进行设置
graphregion(fcolor(white)) 底色变白
legend(row(7) position(3) ring(1) 图例位置设置在3点钟放下,7行显示,图例字体小号
*/
/*graph pie var1, over(var2) plabel(1 "Hello") plabel(5 "goodbye") pie(2, explode color(red)) pie(5, explode)  ptext(90 40 "hahaha" 30 50 "oooooo", color(red))*/

/*散点图*/
gen pos=3  // 创建一个变量,将默认设置的位置保持为3点
/*标签中有相互重叠的地方,使用12小时时钟指定标签,相对于标记的位置来解决这个问题(12是上面的,3是右边,6是下面,9是在标记的左边,pos对应的数字是时钟数字的位置*/
replace pos=2 if var1==XXX        //
replace pos=2 if var1==XXX        //
replace pos=4 if var1==XXX        //
replace pos=6 if var1==XXX        //
replace pos=2 if var1==XXX        //
replace pos=6 if var1==XXX        //

gr twoway scatter var2 var1 if var1>10000,mlabel(var3) mlabv(pos)  msymbol(smcircle) mcolor(blue)  ytitle(XXX) title("XXX") subtitle("(XXX)") note("数据来源: XXX") graphregion(fcolor(white)) nodraw saving(pic3, replace)

/*
mlabel标签变量
mlabv(pos)表示标签方向
msymbol散点形状
*/
/*打开做好的图片*/
graph use "pic1"
graph use "pic2"
graph use "pic3"

藤椅
qchangcheng 在职认证  发表于 2024-1-10 18:41:30

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-9 01:36