Stata绘图:凹凸线图与凹凸面积图-bumparea-bumpline
2023-11-22
刘潍嘉
2497

作者:刘潍嘉 (兰州大学)
邮箱weijialiu99@163.com

编者按:本文整理自 asjadnaqvi/stata-bumplineasjadnaqvi/stata-bumparea,特此致谢!

  • Title: Stata绘图:凹凸线图与凹凸面积图-bumparea-bumpline
  • Keywords: Bumpline Chart, 凸凹线图

1. 介绍

凹凸线图 (Bumpline Chart) 是一种折线图的变形,用于展示一组数据随时间产生的排名而非绝对值的变化。凹凸图的优点在于它不受数据集中数值大小差异的影响,可以产生均匀的排名折线。而标准折线图可能会因为某些数据项较高的数据值导致大量数据线集中在图表的底部,影响读者对数据值的观察。

  • 优点:可以不受数据集中数值大小差异产生均匀的排名折线,方便我们对数据进行二维观察。
  • 缺点:由于它强调排名的相对变化,而不是绝对值,因此可能不适合需要显示具体数值的情况。另外,在数据量很大的情况下,可能会导致图表变得混乱和难以解读。

凹凸面积图 (Bumparea Chart) 则是面积图的变形,用于展示一组数据随时间产生的排名和绝对值的变化。Bumparea Chart 也用于显示类似的趋势,但相对于 Bumpline Chart,它不仅考虑了排名的变化,还可同时显示相对大小的变化。它适用于比较多个组或类别的大小排名和数值变化。

  • 优点:不仅突出了排名的变化,还能够显示组之间的相对大小变化。它能够提供更全面的信息,同时保留了排名变化的可视化效果。
  • 缺点:可能在大数据集上变得混乱,尤其是在组数较多时。

2. 命令介绍

2.1 命令安装

. ssc install bumparea, replace 
. ssc install bumpline, replace
. ssc install palettes, replace   // 命令依赖
. ssc install colrspace, replace  // 命令依赖

2.2 命令语法

2.2.1 bumpline

bumpline y x [if] [in], by(varname) 
    [top(num) select(any|last) smooth(num) palette(str) labcond(str) offset(num)
     lwidth(str) labsize(str) xlabsize(str) ylabsize(str) xlabangle(str) 
     msymbol(str) msize(str) mcolor(str) mlcolor(str) mlwidth(str) mlabsize(str)
     xlabel(str) xtitle(str) ytitle(str) title(str) subtitle(str) note(str) 
     ysize(num) xsize(num) scheme(str) name(str)]

其中,

  • bumpline y x, by(group):该命令需要一个数值型的 y 变量和一个数值型的 x 变量。通常情况下,x 变量是一个时间变量。by() 变量用于定义分组。
  • top(num):在图表中显示的行数。默认选项为 top(50)。其他所有值都会被忽略。
  • select(any|last):选项 sel(any) 会为所有 x 轴类别选择 top()。这是默认选项,同时显示由 by() 类别进入和退出 top()。选项 sel(last) 会跟踪最后一个 x 轴类别的 top() 路径。
  • smooth(num):平滑参数,取值范围为 1 到 8。默认值为 smooth(4)。值为 1 时显示直线,值为 8 时显示几乎垂直的跃迁。
  • palette(str):颜色方案的名称,可以是 colorpalette 包中定义的任何命名方案。默认为 tableau
  • offset(num):扩展 x 轴范围以适应标签。默认值为 offset(15),表示 xmax-xmin 的 15%。
  • lwidth(str):区域轮廓线的线宽。默认为 lw(0.8)
  • labsize(str)by() 类别标签的大小。默认值为 labs(2.2)
  • mlabsize(str):位于中间的 by() 类别标签的大小。默认值为 mlabs(1.6)
  • xlabsize(str):x 轴标签的大小。默认值为 xlabs(2.5)
  • ylabsize(str):y 轴标签的大小。默认值为 ylabs(2.5)
  • xlabangle(str):x 轴标签的角度。默认为 xlaba(0),表示水平。
  • msymbol(str):标记的符号。默认为 msym(2.5)
  • msize(str):标记的大小。默认为 ms(2)
  • mcolor(str):标记的颜色。默认为线条颜色。
  • mlwidth(str):标记轮廓线的宽度。默认为 mlwid(medium)
  • mlcolor(str):标记轮廓线的颜色。默认为线条颜色。
  • xtitle, ytitle, xsize, ysize:这些是标准的 twoway 图表选项。
  • title, subtitle, note, name:这些是标准的 twoway 图表选项。
  • scheme(string):加载自定义方案。可以使用上述选项对各个元素进行微调。

有关更多详细信息,请参阅帮助文件 help bumpline

2.2.2 bumparea

bumparea y x [if] [in], by(varname) 
    [top(num) dropother smooth(num) palette(str) labcond(str) offset(num) 
    alpha(num) lcolor(str) lwidth(str) percent format(fmt) 
    recenter(mid|top|bot) colorby(name) colorvar(var) colother(str)
    xlabel(str) xtitle(str) ytitle(str) title(str) subtitle(str) note(str) 
    ysize(num) xsize(num) scheme(str) name(str) saving(str)]

其中,

  • bumparea y x, by(group):该命令需要一个数值型的 y 变量和一个数值型的 x 变量。通常情况下,x 变量是一个时间变量。by() 变量用于定义分组。
  • top(num):在图表中显示的行数。默认选项为 top(50)。非 top() 值将分组显示在一个“其他”类别中。
  • dropother:从图表中删除“其他”类别,仅显示 top() 类别。
  • smooth(num):平滑参数,取值范围为 1 到 8。默认值为 smooth(4)。值为 1 时显示直线,值为 8 时显示几乎垂直的跃迁。
  • palette(str):颜色方案的名称,可以是 colorpalette 包中定义的任何命名方案。默认为 tableau
  • alpha(num):区域填充的透明度。默认为 alpha(80),表示 80% 的透明度。
  • offset(num):扩展 x 轴范围以适应标签。默认值为 15,表示 xmax-xmin 的 15%。
  • recenter(options):此选项更改图表重新居中的位置。默认选项为 recenter(middle)。其他选项包括 recenter(top)recenter(bottom)。为了简洁,还可以指定如下选项:middle = mid = m, top = t, bottom = bot = b
  • percent:显示 by() 类别的百分比份额。默认为实际值。
  • format(fmt):格式化 by() 类别的值。实际值的默认格式为 format(%12.0fc),百分比选项的默认格式为 format(%5.2f)
  • lwidth(str):区域轮廓线的线宽。默认为 lw(0.2)
  • lcolor(str):区域轮廓线的颜色。默认为 lc(white)
  • labsize(str)by() 类别标签的大小。默认值为 labs(2.8)
  • xlabsize(str):x 轴标签的大小。默认值为 xlabs(2.5)
  • xlabangle(str):x 轴标签的角度。默认为 xlaba(0),表示零度或水平方向。
  • xtitle, ytitle, xsize, ysize:这些是标准的 twoway 图表选项。
  • title, subtitle, note, name:这些是标准的 twoway 图表选项。
  • scheme(string):加载自定义方案。可以使用上述选项对各个元素进行微调。

有关更多详细信息,请参阅帮助文件 help bumparea

3. Stata 案例

绘图前,本文设置了绘图模板以美化图形,安装和设置命令如下,如无需求可以忽略。

. ssc install schemepack, replace  //white_tableau 模板
. set scheme white_tableau         //设定绘图风格为white_tableau 

3.1 Bumpline Chart

. lxhuse owid_emissions_reduced.dta, clear 
. drop if iso_code==""
. keep if year >= 2000
. bumpline total_ghg year, by(country) xsize(2) ysize(1)
. graph export "bumpline_ex01.png", width(2000) replace

3.2 Bumparea Chart

. lxhuse owid_emissions_reduced.dta, clear 
. drop if iso_code==""
. keep if year >= 2000
. bumparea total_ghg year, by(country) dropother percent  ///
>     labs(2.5) xlabsize(2.5) xsize(2) ysize(1.1) xlabangle(40)
. graph export "bumparea_ex01.png", width(2000) replace

4. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 绘图, m
安装最新版 lianxh 命令:
ssc install lianxh, replace