我即将绘制一些变量(在箱线图中,但这无关紧要),我想在纵坐标刻度(y轴)上显示最小值和最大值。
require(ggplot2)
y_min <- min(PlantGrowth$weight)
y_max <- max(PlantGrowth$weight)
ggplot(PlantGrowth, aes(x=group, y=weight)) +
geom_boxplot() +
ylim(y_min, y_max)
结果:
我知道,ylim()
不能直接编辑y轴标签,但在设置另一个范围时,它会意外地起作用:
ggplot(PlantGrowth, aes(x=group, y=weight)) +
geom_boxplot() +
ylim(0, 8)
直截了当的解决方案可能是自己定义标记:
ggplot(PlantGrowth, aes(x=group, y=weight)) +
geom_boxplot() +
scale_y_continuous(breaks=c(seq(y_min, y_max, 1.25), y_max))
几乎总是导致y轴的最后一个和倒数第二个刻度的变化距离。它需要试验seq()
的副参数,直到我们有一个均匀勾选的y轴,其中包括最小值和最大值。有优雅的方式吗?不一定是ggplot2()
解决方案,而是适用于seq()
?
答案 0 :(得分:4)
您似乎在寻找length.out
的{{1}}参数,而不是seq
参数。也就是说,
by
您可能希望将序列包装在scale_y_continuous(breaks = seq(y_min, y_max, length.out = 6))
中,以避免过度精确。