楼主: 匿名
31927 16

[Stata] [Stata]Stata基础操作:绘图概述(九)饼图 [推广有奖]

匿名网友
楼主
匿名网友  发表于 2015-11-11 19:39:46 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

Stata基础操作:绘图(九)饼图

语句格式:
  1. graph pie [variable list], [options]
复制代码
  1. |---|--------------------------------------------------|
  2. | 1 | graph pie div1_revenue div2_revenue div3_revenue |
  3. | 2 |        graph pie revenue, over(division)         |
  4. | 3 |            graph pie, over(popgroup)             |
  5. |---|--------------------------------------------------|
复制代码
基于不同数据格式,具体可分三种饼图:
第1种:多变量饼图:如
依次绘制div1_revenue div2_revenue div3_revenue这三个部门的营业额
第2种:依某一变量分组(即over( )内)如上依照变量
division分组的不同部门营业额
第3种:仅描述单一变量的取值概况,如上绘制popgroup变量内每一组(group)相对应的观测值数目

以第3种为例,
设定绘图格式为
s1color
  1. sysuse auto, clear
  2. set scheme s1color
复制代码
绘制饼图
  1. gr pie ,over (rep78)
复制代码

1.png

注:实际rep78为修理次数,包含缺失值及1-5次共计6种情况/类别,饼图绘制默认不含缺失值

添加缺失值
  1. gr pie ,over(rep78) missing
复制代码

2.png


逆时针排序

  1. gr pie ,over (rep78) noclockwise
复制代码

3.png

调整第一块扇区角度(绿色区域)假设从水平0°开始

  1. gr pie,over (rep78) angle0(0)
复制代码

4.png

//默认第一扇区从90度开始
按百分比大小加以调整区域顺序:升序/降序

  1. gr pie ,over(rep78) sort

  2. gr pie ,over(rep78) sort descending
复制代码

5.png

6.png

突出/分离某一饼块:explode
  1. gr pie ,over(rep78) pie(3,explode)
复制代码

7.png

显示百分比/类别名/总数:

  1. gr pie ,over(rep78) plabel(_all percent,format("%7.2f"))

  2. gr pie ,over(rep78) plabel(_all sum)

  3. gr pie ,over(rep78) plabel(_all name,gap(0))  
复制代码

8.png

9.png


10.png

同时显示百分比/类别名:

(注:图例的处理方法之一:在图中直接标注)

  1. gr pie ,over(rep78) plabel(_all name,gap(6)) legend(off) ///
  2. plabel(_all percent,gap(-3) format("%7.2f"))
复制代码

11.png

gap()用于调节文本与扇心距离,默认为0,大于0使文本内容向外移动,反之内移
附:以上可见rep78为3和4的观测取值在20%以上,以下仅标注这两种情况:

  1. sysuse auto, clear

  2. foreach var of varlist rep78{
  3.         qui count if !missing(`var')
  4.         bys `var': gen frac = _N/r(N)
  5.         gsort -frac
  6.         levelsof `var' if frac>.20

  7.         local wc: word count `r(levels)'
  8.         local plabel ""

  9.         forvalues i=1/`wc'{
  10.         local plabel "`plabel' plabel(`i' name)"
  11.         }

  12.         graph pie, over(`var') `plabel' sort descending ///
  13.         legend(row(1) pos(6) rowgap(*0.3) region(lcolor(none)))

  14.         drop frac
  15. }
复制代码

pie.png

*第一种数据结构:
  1. clear
  2. input sales marketing research development
  3.            12      14        2          8
  4. end

  5. label var sales "Sales"

  6. label var market "Marketing"

  7. label var research "Research"

  8. label var develop  "Development"


  9. #d;
  10. graph pie sales marketing research development,
  11. plabel(_all name, size(*1.5) color(white))      
  12. legend(off)                                 
  13. plotregion(lstyle(none))                        
  14. title("Expenditures, XYZ Corp.")
  15. subtitle("2002")
  16. note("Source:  2002 Financial Report (fictional data)");
  17. #d cr
复制代码

Graph.png

*第二种数据结构:

  1. clear

  2. input qtr str11 division cost
  3.          1       Development  1
  4.          1       Marketing   4.5
  5.          1       Research     .3
  6.          1       Sales       3
  7.          2       Development 2
  8.          2       Marketing   3
  9.          2       Research     .5
  10.          2       Sales       4
  11.          3       Development 2
  12.          3       Marketing   4
  13.          3       Research     .6
  14.          3       Sales       3
  15.          4       Development 3
  16.          4       Marketing   2.5
  17.          4       Research     .6
  18.          4       Sales       2
  19. end


  20. #d;
  21. graph pie cost, over(division) plabel(_all name, size(*1.5) color(white))
  22. legend(off)
  23. plotregion(lstyle(none))
  24. title("Expenditures, XYZ Corp.")
  25. subtitle("2002")
  26. note("Source: 2002 Financial Report (fictional data)");
  27. #d cr
复制代码

Graph.png




/*使用pieplot命令*/
与gr pie对比,语法较简化:

  1. |-------------------|--------------------------------|
  2. |    pieplot yvar   |      graph pie,over(yvar)      |
  3. | pieplot yvar xvar | graph pie, over(yvar) by(xvar) |
  4. |-------------------|--------------------------------|
复制代码
  1. ssc inst pieplot

  2. pieplot rep78
复制代码

12.png

install可缩略为inst

/*添加百分比*/

  1. tab rep78
复制代码

1.jpg

  1. label def  rep   ///
  2.          1 "1->2.9%"  ///
  3.          2 "2->11.6%" ///
  4.          3 "3->43.5%" ///
  5.          4 "4->26.1%" ///
  6.          5 "5->15.9%"
  7. label val rep78 rep
  8. pieplot rep78
复制代码

13.png

  1. label drop rep
复制代码
绘制多个饼图
方法一:
  1. gr pie,over(rep78) by(foreign) ///
  2. legend(row(1) region(lcolor(none)) size(*1.3) rowgap(*3))
复制代码

14.png

方法二:

  1. pieplot rep78 foreign
复制代码

15.png

进一步美化:

1.图例水平放置------>row(1)

2.lcolor(none)--->图例边框颜色

  1. pieplot rep78 foreign, sum plabelsubopts(size(*2)) ///
  2. pie(1, color(red*2)) pie(2, color(red)) ///
  3. pie(3, color(red*0.7)) pie(4, color(red*0.5)) ///
  4. pie(5, color(red*0.3))  name(pieplot) ///
  5. legend(row(1) region(lcolor(none)) size(*1.3) rowgap(*3))
复制代码

pieplot.png

快速呈现的方法graph7:(此时不能使用graph editor)

  1. tabulate foreign, generate(f)
  2. graph7 f1 f2, pie
复制代码

P1.png



  1. tabulate rep78, generate(r)
  2. graph7 r1 r2 r3 r4 r5, pie
复制代码

p2.png






二维码

扫码加我 拉你入群

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

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

关键词:Stata基础 Stata tata 基础操作 Expenditures revenue 营业额

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xddlovejiao1314 + 100 + 100 + 5 + 5 + 5 精彩帖子

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

本帖被以下文库推荐

沙发
xddlovejiao1314 学生认证  发表于 2015-11-11 19:42:40 |只看作者 |坛友微信交流群
好贴,谢谢分享。
已有 1 人评分论坛币 热心指数 收起 理由
niuniuyiwan + 18 + 1 精彩帖子

总评分: 论坛币 + 18  热心指数 + 1   查看全部评分

使用道具

藤椅
niuniuyiwan 在职认证  发表于 2015-11-11 19:46:23 |只看作者 |坛友微信交流群
xddlovejiao1314 发表于 2015-11-11 19:42
好贴,谢谢分享。
谢谢师兄支持

使用道具

板凳
cadxpzm 发表于 2015-11-11 21:03:34 来自手机 |只看作者 |坛友微信交流群
niuniuyiwan 发表于 2015-11-11 19:39
好帖子
已有 1 人评分论坛币 热心指数 收起 理由
niuniuyiwan + 15 + 1 精彩帖子

总评分: 论坛币 + 15  热心指数 + 1   查看全部评分

使用道具

报纸
胡老 发表于 2017-2-2 09:55:36 |只看作者 |坛友微信交流群
Many thanks to you.

使用道具

地板
从融之旅 发表于 2017-12-20 18:48:37 |只看作者 |坛友微信交流群
感谢分享哦!

使用道具

7
晓晓珍 学生认证  发表于 2018-2-14 00:09:17 |只看作者 |坛友微信交流群
非常感谢

使用道具

8
奇犽dsp 学生认证  发表于 2018-3-9 11:04:06 |只看作者 |坛友微信交流群
谢谢分享

使用道具

9
sannian_ 发表于 2018-3-12 09:22:02 |只看作者 |坛友微信交流群
感谢楼主无私且详细的分享,解决了我的大问题!谢谢!!!

使用道具

10
sxt666 发表于 2018-12-13 15:13:03 |只看作者 |坛友微信交流群
感谢楼主分享

使用道具

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

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

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

GMT+8, 2024-4-20 01:42