You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:10:42