查看原文
其他

127 种 Stata 绘图主题合集

RStata RStata 2023-10-24

Stata 默认的绘图主题是很丑的,这是公认的。

那么能否使用 Stata 快捷的绘制出精美的图表呢?肯定是可以的。

为了方便大家选择,我搜集了几乎所有的 Stata 绘图主题,一共是 127 种。从 RStata 平台(点击阅读原文即可跳转)上搜索“绘图主题”即可找到本文相关的附件,里面有这些主题的安装包,运行下面的代码即可安装:

clear all
* 设定工作目录(附件所在文件夹)
global wd = "~/Desktop/Stata绘图主题"
cd $wd
* 安装相关的绘图主题包
foreach i in "scheme-burd" "blindschemes" ///
"brewschemeextras" "dubois" ///
"feigenbaum" "g538schemes" "prioscheme" ///
"qlean" "rstata_scheme" "scheme_cgd" ///
"scheme_cgd_on_black" "scheme_rbn1mono" ///
"scheme_s2clr_on_white" "scheme_scientific" ///
"scheme_tufte" "scheme_virdis" "scheme-lean" ///
"scheme-modern" "scheme-mrc" "scheme-pih" ///
"scheme-tfl" "schemepack" "uncluttered" ///
"vgsg3" "yalescheme"{
net install `i'.pkg, from("$wd/scheme/`i'") replace
}

注意 "~/Desktop/Stata绘图主题" 是 “Stata绘图主题” 文件夹在我的电脑上的路径,大家需要把这个替换成自己电脑上的路径。

那么如何获取可用的主题列表呢:

cap log close
log using "schemeslist.smcl", replace smcl
graph query, schemes
log close

infix strL v 1-200 using schemeslist.smcl, clear
keep if index(v, "{col 5}")
replace v = subinstr(v, "{res}", "", .)
gen scheme = ustrregexs(1) if ustrregexm(v, "5\}(.*)")
split scheme, parse("{col 20}")
keep scheme1
ren scheme1 scheme
save scheme, replace

然后我们就得到了一个 128 行的变量 v,每个观测值都是一种绘图主题:

list scheme in 1/10

*> +-------------------------+
*> | scheme |
*> |-------------------------|
*> 1. | uncluttered |
*> 2. | uncluttered_publication |
*> 3. | 538 |
*> 4. | 538bw |
*> 5. | 538w |
*> |-------------------------|
*> 6. | black_brbg |
*> 7. | black_cividis |
*> 8. | black_hue |
*> 9. | black_jet |
*> 10. | black_piyg |
*> +-------------------------+

为了对不同主题的样式进行比较,我们统一使用这样的一幅图:

* 使用下面四幅图的组合展示各个主题的区别
sysuse auto, clear
* 线图 + 直方图
tw histogram mpg, width(5) ysc(alt axis(1)) || ///
line weight mpg, yaxis(2) ysc(alt axis(2)) sort ///
name(a, replace) scheme(lightrstata)

* 线图 + 阴影图
sysuse auto, clear
sum price, mean
local mean = r(mean)
qui kdensity price, gen(x h) nodraw
tw line h x || ///
area h x if x < `mean', name(b, replace) ///
scheme(lightrstata)

* 散点图 + 拟合
tw sc price weight || ///
lpolyci price weight, name(c, replace) ///
scheme(lightrstata)

* 箱线图
generate order = _n
expand 3
bysort order : generate which = _n
drop if which == 1 & price > 5000
drop if which == 2 & price > 10000
label def which 1 "<= $5000" 2 "<= $10000" 3 "all"
label val which which
gr box mpg, over(which) over(foreign) ///
name(d, replace) scheme(lightrstata)

gr combine a b c d, rows(2) scheme(lightrstata) xsize(20) ysize(12)

下面我把我觉得还不错的一些展示出来:

lightrstata 主题

qlean 主题

538 主题

black_brbg 主题

burd 主题

dubois 主题

gg_hue 主题

neon 主题

white_hue 主题

PDF 文档:Stata 绘图主题合集

最后为了方便大家比较和查阅不同的主题,我使用 Tex 编写了一本精美的小册子:

大家如果方便打印的话可以把它打印出来放在桌边以便查阅。

获取附件

欢迎购买 RStata 会员获取全部课程和以会员价获取数据资料(10元/份)详情可阅读这篇推文:推荐一个学习 R 语言、Stata、计量经济学与投入产出的好地方!

详情可点击阅读原文进入 RStata 学院了解(从首页的会员卡专区即可查看和购买会员卡)。

更多关于 RStata 培训班的信息可添加微信号 r_stata 咨询:


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存