如何调整LexisPlotR的lexis_grid,使对角线起始于1900而非终止于2021?
调整LexisPlotR Lexis图对角线起始位置的方法
问题
我有覆盖0-80岁年龄组、1900-2021年的数据集,用R的LexisPlotR包lexis_grid绘制Lexis图:
library(LexisPlotR) lexis_grid(year_start = 1900, year_end = 2021, age_start = 0, age_end = 80, delta = 10 )
但生成的图里,对角线右上角端点卡在2021年,和垂直十年刻度线对不齐。想调整让对角线从1900年开始,和刻度线对齐。
解决办法
方法1:调整年份范围让默认对角线自动对齐
Lexis图的默认对角线是连接year_end - age_end到year_end的同批人轨迹。要让它从1900年(0岁)起始,直接把year_end设为1900 + 80 = 1980:
library(LexisPlotR) lexis_grid(year_start = 1900, year_end = 1980, # 1900+80,确保对角线从1900(0岁)延伸到1980(80岁) age_start = 0, age_end = 80, delta = 10 )
这样对角线会完美贴合十年刻度线,视觉上更规整。
方法2:保留2021年年份轴,手动添加目标对角线
如果需要保留2021年的年份范围,先画基础网格,再用lexis_lines手动添加从1900年(0岁)到1980年(80岁)的对角线:
library(LexisPlotR) # 绘制包含2021年的基础网格 p <- lexis_grid(year_start = 1900, year_end = 2021, age_start = 0, age_end = 80, delta = 10) # 添加自定义对角线,覆盖默认的不对齐线条 p + lexis_lines(x0 = 1900, y0 = 0, x1 = 1980, y1 = 80, lwd = 2)
原理
Lexis图的对角线代表同批人的年龄随时间变化的轨迹。默认逻辑是:从year_end - age_end的年份(对应0岁),到year_end的年份(对应age_end岁)。你原来的代码里2021-80=1941,所以对角线从1941年开始到2021年结束,自然和十年线对不齐。调整year_end为1980后,1980-80=1900,对角线就从1900年起始,刚好对齐所有十年刻度。
内容的提问来源于stack exchange,提问作者tchoup
相关产品推荐
相关产品推荐

