如何修改ggscatter的X/Y轴刻度,避免出现非整数刻度?
解决ggscatter坐标轴出现非整数刻度的问题
要避免ggscatter生成的坐标轴出现2.5、7.5这类非整数刻度,只需在绘图代码后添加ggplot2的轴刻度控制函数,指定仅显示整数刻度即可。
修改后的代码示例
library(ggpubr) X_AXIS = sample(c(1:10),size = 100, replace = TRUE) Y_AXIS = sample(c(1:10),size = 100, replace = TRUE) novaTabela = data.frame(X_AXIS, Y_AXIS) # 手动指定整数刻度 ggscatter(novaTabela, x = "X_AXIS", y = "Y_AXIS", add = "reg.line", cor.coef = TRUE, cor.method = "pearson") + scale_x_continuous(breaks = c(0, 5, 10)) + scale_y_continuous(breaks = c(0, 5, 10))
灵活调整刻度的方法
如果不想手动逐个指定刻度,可以用scales包的breaks_width函数自动生成间隔固定的整数刻度,比如间隔为2:
ggscatter(novaTabela, x = "X_AXIS", y = "Y_AXIS", add = "reg.line", cor.coef = TRUE, cor.method = "pearson") + scale_x_continuous(breaks = scales::breaks_width(2)) + scale_y_continuous(breaks = scales::breaks_width(2))
这段代码会自动生成0,2,4,6,8,10这类整数刻度,你可以根据需求修改breaks_width里的数值(比如改成3,就会生成0,3,6,9)。
关键说明
scale_x_continuous和scale_y_continuous是ggplot2的核心函数,用于控制连续型坐标轴的显示规则breaks参数直接定义要显示的刻度值,必须传入整数向量,就能彻底避免非整数刻度出现
内容的提问来源于stack exchange,提问作者Diego Goergen
相关产品推荐
相关产品推荐

