相似文件
换一批
经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
语句格式:
- graph pie [variable list], [options]
复制代码- |---|--------------------------------------------------|
- | 1 | graph pie div1_revenue div2_revenue div3_revenue |
- | 2 | graph pie revenue, over(division) |
- | 3 | graph pie, over(popgroup) |
- |---|--------------------------------------------------|
复制代码 基于不同数据格式,具体可分三种饼图:
第1种:多变量饼图:如依次绘制div1_revenue div2_revenue div3_revenue这三个部门的营业额
第2种:依某一变量分组(即over( )内)如上依照变量division分组的不同部门营业额
第3种:仅描述单一变量的取值概况,如上绘制popgroup变量内每一组(group)相对应的观测值数目
以第3种为例,
设定绘图格式为s1color- sysuse auto, clear
- set scheme s1color
复制代码 绘制饼图
注:实际rep78为修理次数,包含缺失值及1-5次共计6种情况/类别,饼图绘制默认不含缺失值
添加缺失值- gr pie ,over(rep78) missing
复制代码
逆时针排序 - gr pie ,over (rep78) noclockwise
复制代码
调整第一块扇区角度(绿色区域)假设从水平0°开始 - gr pie,over (rep78) angle0(0)
复制代码
//默认第一扇区从90度开始
按百分比大小加以调整区域顺序:升序/降序
- gr pie ,over(rep78) sort
- gr pie ,over(rep78) sort descending
复制代码
突出/分离某一饼块:explode- gr pie ,over(rep78) pie(3,explode)
复制代码
显示百分比/类别名/总数: - gr pie ,over(rep78) plabel(_all percent,format("%7.2f"))
- gr pie ,over(rep78) plabel(_all sum)
- gr pie ,over(rep78) plabel(_all name,gap(0))
复制代码
同时显示百分比/类别名: (注:图例的处理方法之一:在图中直接标注) - gr pie ,over(rep78) plabel(_all name,gap(6)) legend(off) ///
- plabel(_all percent,gap(-3) format("%7.2f"))
复制代码
gap()用于调节文本与扇心距离,默认为0,大于0使文本内容向外移动,反之内移
附:以上可见rep78为3和4的观测取值在20%以上,以下仅标注这两种情况:
- sysuse auto, clear
- foreach var of varlist rep78{
- qui count if !missing(`var')
- bys `var': gen frac = _N/r(N)
- gsort -frac
- levelsof `var' if frac>.20
- local wc: word count `r(levels)'
- local plabel ""
- forvalues i=1/`wc'{
- local plabel "`plabel' plabel(`i' name)"
- }
- graph pie, over(`var') `plabel' sort descending ///
- legend(row(1) pos(6) rowgap(*0.3) region(lcolor(none)))
- drop frac
- }
复制代码
*第一种数据结构:
- clear
- input sales marketing research development
- 12 14 2 8
- end
- label var sales "Sales"
- label var market "Marketing"
- label var research "Research"
- label var develop "Development"
- #d;
- graph pie sales marketing research development,
- plabel(_all name, size(*1.5) color(white))
- legend(off)
- plotregion(lstyle(none))
- title("Expenditures, XYZ Corp.")
- subtitle("2002")
- note("Source: 2002 Financial Report (fictional data)");
- #d cr
复制代码
*第二种数据结构:
- clear
- input qtr str11 division cost
- 1 Development 1
- 1 Marketing 4.5
- 1 Research .3
- 1 Sales 3
- 2 Development 2
- 2 Marketing 3
- 2 Research .5
- 2 Sales 4
- 3 Development 2
- 3 Marketing 4
- 3 Research .6
- 3 Sales 3
- 4 Development 3
- 4 Marketing 2.5
- 4 Research .6
- 4 Sales 2
- end
- #d;
- graph pie cost, over(division) plabel(_all name, size(*1.5) color(white))
- legend(off)
- plotregion(lstyle(none))
- title("Expenditures, XYZ Corp.")
- subtitle("2002")
- note("Source: 2002 Financial Report (fictional data)");
- #d cr
复制代码
| /*使用pieplot命令*/
与gr pie对比,语法较简化:
- |-------------------|--------------------------------|
- | pieplot yvar | graph pie,over(yvar) |
- | pieplot yvar xvar | graph pie, over(yvar) by(xvar) |
- |-------------------|--------------------------------|
复制代码- ssc inst pieplot
- pieplot rep78
复制代码
install可缩略为inst /*添加百分比*/
- label def rep ///
- 1 "1->2.9%" ///
- 2 "2->11.6%" ///
- 3 "3->43.5%" ///
- 4 "4->26.1%" ///
- 5 "5->15.9%"
- label val rep78 rep
- pieplot rep78
复制代码
绘制多个饼图
方法一:
- gr pie,over(rep78) by(foreign) ///
- legend(row(1) region(lcolor(none)) size(*1.3) rowgap(*3))
复制代码
方法二:
进一步美化: 1.图例水平放置------>row(1) 2.lcolor(none)--->图例边框颜色 - pieplot rep78 foreign, sum plabelsubopts(size(*2)) ///
- pie(1, color(red*2)) pie(2, color(red)) ///
- pie(3, color(red*0.7)) pie(4, color(red*0.5)) ///
- pie(5, color(red*0.3)) name(pieplot) ///
- legend(row(1) region(lcolor(none)) size(*1.3) rowgap(*3))
复制代码
快速呈现的方法graph7:(此时不能使用graph editor) - tabulate foreign, generate(f)
- graph7 f1 f2, pie
复制代码
- tabulate rep78, generate(r)
- graph7 r1 r2 r3 r4 r5, pie
复制代码
|
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|