如何用ggplot2创建仅显示X轴的气泡图(消除Y轴冗余空间)
解决ggplot气泡图Y轴空间过大的问题
你可以通过限制Y轴可视范围+移除所有Y轴元素+调整绘图边距这三步来解决问题,修改后的代码如下:
ggplot(df, aes(x = range, y = new, size = numberPoints)) + geom_point(alpha = 0.5, shape = 19) + scale_size(range = c(.1, 24)) + # 隐藏Y轴刻度 scale_y_continuous(breaks = NULL) + # 压缩Y轴可视范围,确保气泡仅在X轴上方显示 coord_cartesian(ylim = c(0, 0.1)) + # 彻底移除Y轴的标签、刻度线、轴线等所有元素 theme( axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), axis.line.y = element_blank(), # 微调绘图边距,消除多余空白 plot.margin = margin(t = 5, r = 5, b = 10, l = 5, unit = "pt") )
关键细节说明:
coord_cartesian(ylim = c(0, 0.1)):这是安全限制Y轴显示范围的方式,不会过滤原始数据(如果用scale_y_continuous(limits=...),超出范围的数据会被丢弃,这里你的new值全为0,两种方法都能用,但coord_cartesian更通用),把Y轴压缩到仅能容纳气泡的小范围,避免上下出现冗余空间。theme中的参数:彻底清除Y轴的所有可见元素,让图表只保留X轴和气泡。- 如果气泡仍有顶部留白,可将
ylim的上限调小(比如0.05),或者调整plot.margin的t(顶部)参数值。
内容的提问来源于stack exchange,提问作者Dahlia
相关产品推荐
相关产品推荐

