如何为含Inf值的超出边界数据点添加标签?
如何为坐标含Inf值(超出绘图边界)的数据点添加标签?
使用R语言的ggplot2配合ggrepel包可以实现需求,示例代码如下:
ggplot(data.frame(x = 0, y = Inf, row = "oob"), aes(x, y)) + geom_point() + scale_y_continuous(limits = c(-1, 1), oob = scales::squish) + ggrepel::geom_label_repel(aes(label = row), nudge_y = -0.2, nudge_x = 0.2 ) + coord_cartesian(clip = "off")
关键参数说明:
scale_y_continuous(limits = c(-1, 1), oob = scales::squish):把超出y轴范围的Inf值压缩到边界位置,确保数据点能被正常绘制ggrepel::geom_label_repel:生成可自动规避重叠的标签,通过nudge_y和nudge_x微调标签位置coord_cartesian(clip = "off"):允许标签显示在绘图区域外部,避免被裁剪
运行代码后生成的可视化效果如下:

内容的提问来源于stack exchange,提问作者Yun
相关产品推荐
相关产品推荐

