使用ggplot2绘制置信区间图时遭遇date_trans错误的技术求助
解决ggplot2 geom_linerange日期轴错误
你的报错根源是geom_linerange的参数映射完全搞反了:
- 置信区间是x轴(Coefficient)的上下限,应该用
xmin和xmax,而非针对y轴的ymin/ymax - 错误地将x映射为
Variable,这与x轴的数值属性不符
修正后的代码如下:
library(tidyverse) results %>% ggplot(aes(x = Coefficient, y = Year, color = Variable)) + geom_linerange(aes(xmin = conf.low_95, xmax = conf.high_95)) + geom_point() + scale_y_date(date_labels = "%Y") + # 将日期轴显示为年份格式 theme_minimal()
关键修正点:
- 把置信区间的映射从
ymin/ymax改为xmin/xmax,对应x轴的系数上下限 - 移除
geom_linerange中错误的x = Variable映射,全局的color = Variable已经能区分不同模型 - 先画
geom_linerange再画geom_point,让点显示在区间上方,更符合示例图的视觉逻辑 - 用
scale_y_date(date_labels = "%Y")把Date类型的Year转换为仅显示年份的标签,更直观
内容的提问来源于stack exchange,提问作者Alexandre Sanches
相关产品推荐
相关产品推荐

