在最小值和最大值之间均匀分布y轴刻度

时间:2014-12-01 21:15:39

标签: r ggplot2 axis-labels

我即将绘制一些变量(在箱线图中,但这无关紧要),我想在纵坐标刻度(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)

结果: No minimum and maximum display

我知道,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()

的解决方案

1 个答案:

答案 0 :(得分:4)

您似乎在寻找length.out的{​​{1}}参数,而不是seq参数。也就是说,

by

您可能希望将序列包装在scale_y_continuous(breaks = seq(y_min, y_max, length.out = 6)) 中,以避免过度精确。