热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Stata数据可视化:十幅精美图形的绘制

Stata数据可视化: 十幅精美图形的绘制

特别说明: 文中包含的链接在微信中无法生效。请点击本文底部左下角的【阅读原文】,转入本文【简书版】。

相关推文: 连享会-数据可视化系列推文

  • 普林斯顿Stata教程 - Stata做图
  • Stata绘图:bgshade - 在图形中加入经济周期阴影
  • Stata绘图: 添加虚线网格线
  • Stata: 一个干净整洁的 Stata 图形模板qlean
  • Stata: 用暂元统一改变图形中的字号
  • Stata-IE-Visual-Library 可视化
  • Stata:中文期刊风格的纯黑白图形
  • Stata绘图:重新定义坐标轴刻度标签
  • Stata可视化:让他看懂我的结果!
  • Stata连享会:动画 GIF 演示 OLS 的性质
  • Stata: 姑娘的生日礼物
  • Stata: Graphing Distributions
  • Stata:让图片透明——你不要掩盖我的光芒
  • Stata:用 bytwoway 实现快速分组绘图
  • 怎么在Stata图形中附加水平线或竖直线?
  • 用 Stata 制作教学演示动态图 GIF


Source: https://www.surveydesign.com.au/tipsgraphs.html
该网站提供了几十种 Stata 图形的绘制方法 (dofile)


Stata数据可视化: 十幅精美图形的绘制

编译:张晓明 (中国人民大学);连玉君(中山大学)

Stata 连享会: 知乎 | 简书 | 码云

下载 dofile: 连享会-十幅经典图形绘制.do (可右击另存,亦可在线查看)

1. 散点图:附加密度函数图和拟合线(Scatter Plot with Regression Results)

附加密度函数和拟合曲线的散点图能够更好地看清样本的概率分布,同时能够表示出参数估计的置信区间。

Stata数据可视化: 十幅精美图形的绘制


*-文件夹设定
cd D:\
mkdir myfigs
cd D:\myfigs  // 后文输出的图形自从存储于此处

*-----------
*- F1 散点图:附加密度函数和拟合曲线图绘制
*-----------

sysuse auto, clear 
version 9.2  //绘制这幅图的时候,需要加这条命令,后续版本的stata绘图命令的语法有所改变
keep if foreign
sort weight

gen weight2 = weight^2
regress mpg weight weight2
predict fit
predict se , stdp

#delimit ;
twoway 
  scatter mpg weight , pstyle(p3) ms(o) ||
  fn weight[3]  - 1000 * normden(x, `=fit[3]' , `=se[3]') ,
    range(`=fit[3] -5' `=fit[3] +5') horiz pstyle(p1) ||
  fn `=fit[3]' , range(`=weight[3]' `=weight[3]-1000*normden(0, se[3])')
    pstyle(p1) ||
  fn weight[17] - 1000 * normden(x, `=fit[17]', `=se[17]') ,
    range(`=fit[17]-5' `=fit[17]+5') horiz pstyle(p1) ||
  fn `=fit[17]', range(`=weight[17]' `=weight[17]-1000*normden(0, se[17])')
    pstyle(p1) ||
  fn weight[21] - 1000 * normden(x, `=fit[21]' , `=se[21]') ,
    range(`=fit[21] -7' `=fit[21] +7') horiz pstyle(p1) ||
  fn `=fit[21]', range(`=weight[21]' `=weight[21]-1000*normden(0, se[21])')
    pstyle(p1) ||
  line fit weight, clwidth(*2) legend(off) 
    ytitle(Miles per gallon) xtitle(Weight)
    title("Scatter with Regression Line and Confidence Interval Densities"
           , size(*0.8) margin(t=0 b=1.5) span) 
;
#delimit cr

*-保存图片
graph export "F1_Scatter_distribution.png", ///
      replace width(506) height(376) 


2. 三变量比例图 (triplot)

三变量比例图可以显示出三个变量之间的复杂的组合关系,三个变量比例的取值范围为1~100。

Stata数据可视化: 十幅精美图形的绘制


*----------------
*-F2 三变量比例图
*----------------

* Plots 3 variables (proportions or percentages) 
* the total of each to equal either 1 or 100

ssc install triplot, replace  // 下载命令

clear
input a1 a2 a3 str10 name 
      10 10  80  John
      80 10  10  Fred
      25 25  50  Jane
      90  5   5  Helen
      0   0 100  Ed
      50 25  25  Kate
      20 60  20  Michael
      25 25  50  Darren
      5  90   5  Samar
end

list

triplot a1  a2  a3,  ///
    mlabel(name) mlabcolor(black) mcolor(blue) ///
    mlabsize(*0.9) max(100) ///
	title("Opinion a1 a2 a3")
	
//保存图片
graph export "F2_triplot.png", ///
      replace width(506) height(376) 


3. 点图:图示政策效果(Stripplot)

如果将本例中的纵轴分组变量换成年份,则这幅图可以在倍分法回归分析之前,图示政策效果。

Stata数据可视化: 十幅精美图形的绘制


*--------
*-F3 点图 图示政策效果
*--------

ssc install stripplot, replace // 下载并更新命令
help stripplot // 查看帮助文件

sysuse bplong, clear
egen group = group(age sex), label

#d ;
stripplot bp*, bar over(when) 
   by(group, compact col(1) note("")) 
   yscale(reverse) 
   subtitle(, pos(9) ring(1) nobexpand 
              bcolor(none) placement(e)) 
   ytitle("") 
   xtitle("Blood pressure (mm Hg)") ;
#d cr 

//保存图片
graph export "F3_triplot.png", ///
      replace width(531) height(394) 


4. 雷达图\蜘蛛网图 (Radar Plot, Spider plots)

雷达图在市场营销和管理学中应用较为广泛,主要用于呈现某个对象的各方面特征的均衡度,正所谓 “尺有所短寸有所长”。

Stata数据可视化: 十幅精美图形的绘制


*-------------------	  
*-F4 雷达图\蜘蛛网图
*-------------------

ssc install radar, replace //下载外部命令
help radar //查看帮助文件

sysuse auto, clear
sort price 

#d ;
radar make turn mpg trunk in 1/20,  
   aspect(1) 
   title(Nice Radar graph, size(*0.6)) 
   lc(red blue green)  
   lw(*1 *2 *4) rlabel(0 12 14 18 50) labsize(*0.7) 
   legend(label(1 "mpg-油效(英里/加仑)") 
          label(2 "turn-转弯半径(英尺)")
		  label(3 "trunk-后备箱容积(立方英尺)")
		  col(1) size(*.8)) ;
#d cr

//保存图片   
graph export "F4_radar_plot.png", ///
      replace width(431) height(394)


5. 快捷诊断图(Sixplot)

快捷诊断图针对一个变量提供了六幅分析性的、描述性的图片

Stata数据可视化: 十幅精美图形的绘制


*-------------- 
*-F5 快捷诊断图
*--------------

*-Goal: Displays six diagnostic and descriptive graphs for a single variable

ssc install sixplot //下载命令

sysuse uslifeexp.dta
sixplot le_male

//保存图片
graph export "F5_sixplot.png", ///
      replace width(431) height(394) 


6. 箱形图 (Box Plot)

箱形图又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。

Stata数据可视化: 十幅精美图形的绘制


*-----------	  
*-F6 箱形图
*-----------

sysuse nlsw88, clear

clonevar wagelog10 = wage
replace  wagelog10 = log10(wagelog10)

mylabels 0(10)40 , myscale(log10(@)) local(labels)

#d ;
graph hbox wagelog10, 
  over(ind, sort(1)) nooutside 
  ytitle("") ylabel(`labels') 
  title("Hourly wage, 1988, woman aged 34-46", span) 
  subtitle(" ") 
  note("Source:1988 data from NLS, U.S. Dept. of Labor, "
       "Bureau of Labor Statistics", span) ;
#d cr 

//保存图片
graph export "F6_box_plot.png", ///
      replace width(431) height(394)


7. 小提琴图(Violin Plot)

小提琴图 (Violin Plot) 用于显示数据分布及其概率密度。这种图表结合了箱形图和密度图的特征,主要用来显示数据的分布形状。中间的黑
色粗条表示四分位数范围,从其延伸的幼细黑线代表 95% 置信区间,而白点则为中位数。

Stata数据可视化: 十幅精美图形的绘制


*------------	
*-F7 小提琴图
*------------

ssc install vioplot // 下载外部命令
help vioplot // 查看帮助文件

sysuse auto, clear

vioplot mpg, over(rep78) horizontal name(myplot) ///
   title("Violin Plot of Mileage") ///
   subtitle("By repair record")    ///
   ytitle(Repair Record) ///
   ylab(, angle(horiz))  ///
   scheme(s2mono)

//保存图片   
graph export "F7Violin_plot.png", ///
      replace width(431) height(394) 


8. 热图绘制(Heat Map)

热图通过平面二维坐标加上不同区域颜色的变化表达了三维信息,热图中横坐标与纵坐标给出了数据的特征,**热图的颜色表示了该数据在整体中的概率密度分布。 **

Stata数据可视化: 十幅精美图形的绘制


*------------  
*-F8 热图绘制
*------------

ssc install spgrid, replace

ssc install spkde, replace

ssc install mylabels, replace //下载外部命令

sysuse "auto.dta", clear
set more off

summarize price mpg
clonevar x = mpg
clonevar y = price
replace x = (x-0)/(50-0)
replace y = (y-0)/(20000-0)

mylabels 0(10)50, myscale((@-0)/(50-0)) local(XLAB)
mylabels 0(5000)20000, myscale((@-0)/(20000-0)) local(YLAB)
keep x y
save "xy.dta", replace

* 1. Generate a 100x100 grid

spgrid, shape(hexagonal) xdim(100)    ///
xrange(0 1) yrange(0 1)               ///
dots replace                          ///
cells("2D-GridCells.dta")             ///
points("2D-GridPoints.dta")

* 2. Estimate the bivariate probability density function

spkde using "2D-GridPoints.dta",    ///
xcoord(x) ycoord(y)                 ///
bandwidth(fbw) fbw(0.1) dots        ///
saving("2D-Kde.dta", replace)

use "2D-Kde.dta", clear

merge 1:1 _n using xy.dta

twoway (contour p  spgrid_ycoord spgrid_xcoord  if p!=0 , ///
levels(15))                                               ///
(scatter y x, mcolor(black) msize(small) )                ///
,xlab(`XLAB', nogrid) xtitle("Mileage (mpg)")             ///
ylab(`YLAB', nogrid)                                      ///
ytitle("Price $US") plotregion(color(blue))

graph export "F8Heat_Map.png", replace width(431) height(394)


9. 棘状图绘制(Spine Plot)

棘状图的原理和条件密度图非常相似,都展示了给定某个自变量的情况下因变量的概率分布,但是棘状图首先对连续型的自变量进行了离散化处理,然后再离散区间内计算因变量的条件分布。除此之外,棘状图还兼顾了自变量的分布,在横轴方向上以不同宽度的矩形表示自变量的分布密度。

Stata数据可视化: 十幅精美图形的绘制


*--------------
*-F9 棘状图绘制
*---------------

sysuse auto, clear

replace rep78=0 if missing(rep78) 

bysort foreign rep78 : gen N   = _N
bysort foreign       : gen Na1 = (N/_N)*100

by foreign : gen N1 = string(Na1,"%5.2f") +"%"

label define kk 0 "missing",
label values rep78 kk

spineplot rep78 foreign, ///
   bar1(bcolor(gs14))    ///
   percent missing       ///
   bar2(bcolor(gs11))    ///
   bar3(bcolor(gs8))     ///
   bar4(bcolor(gs5))     ///
   bar5(bcolor(gs2))     ///
   bar6(bcolor(red)) text(N1)

graph export "F9Spine_Plot.png", ///
      replace width(431) height(394)


10. 中心条形图(Centred Bar Plot)

中心条形图经常被用在社会学统计分析中,中心的条块经常用来显示不同层次或年龄群体在横坐标对应的分类中的频率。

Stata数据可视化: 十幅精美图形的绘制


*---------------- 
*-F10 中心条形图
*---------------- 

ssc install cbarplot, replace 

clear
input levels freqcores freqblanks freqtools
    25 21  32   70
    24 36  52   115
    23 126 650  549
    22 159 2342 1633
    21 75  487  511
    20 176 1090 912
    19 132 713  578
    18 46  374  266
    17 550 6182 1541
    16 76  846  349
    15 17  182  51
    14 4   51   14
    13 29  228  130
    12 135 2227 729
end

reshape long freq, i(levels) j(kind) string

*-绘图
cbarplot levels kind [fw=freq], percent(levels) mlabsize(*.6)

*-保存图片
graph export "F10Centred_Bar_Plot.png", ///
      replace width(431) height(394)

下载 dofile: 连享会-十幅经典图形绘制.do (可右击另存,亦可在线查看)

Stata数据可视化: 十幅精美图形的绘制

关于我们

  • Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
  • 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词StataStata连享会后关注我们。
  • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
  • Stata连享会 精品专题 || 精彩推文

联系我们

  • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
  • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 联系邮件: [email protected]

往期精彩推文

  • Stata连享会推文列表
  • Stata连享会 精品专题 || 精彩推文

Stata数据可视化: 十幅精美图形的绘制


Stata数据可视化: 十幅精美图形的绘制


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
author-avatar
小赖小燕_380
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有