如何在R中使用ggplot2将y轴更改为百分比?

时间:2018-04-24 18:44:24

标签: r ggplot2

我在R中有一个这样的代码段,我用它来绘图:

plot_bar <- function(x, y, min, max, color = plot_colors[2]) {
  p <- ggplot(data.frame(as.integer(x), y)) +
    geom_bar(aes(x, y), stat = "identity", position = "dodge", fill = color) + ylim(min, max) + 
    theme_light() + theme(text = element_text(size = 25), axis.title.x = element_blank(), axis.title.y = element_blank())

  return(p)
}

这适合我,并产生这样的东西:

enter image description here

基本上,(-2,+2)从函数中minmax参数的值传递给我的图。但问题是,对于y轴,我想要(-2.+2)而不是(-0.1%,+0.1%)。是否可以更改y轴上的文字?

1 个答案:

答案 0 :(得分:1)

使用函数scale_y_continuous()。它有一个参数labels。您可以为此参数提供任何函数,以将您拥有的标签转换为正确的标签。

在您的情况下,如果要将区间[-2; 2]映射到[-0.1; 0.1]你能做什么:

p <- ggplot(...) + geom_*(...)
p + scale_y_continuous(labels = function(x) paste0(x/20, "%"))

因此,此函数获取每个数字标签,将其除以20并转换为字符。

希望这就是你要找的东西。