在ggplot2图表中代表负资金

时间:2014-02-27 16:38:33

标签: r ggplot2

我正试图在ggplot2图表上使用R代表负资金。 我有大量(数百万),所以我将轴上的数字转换为1M,2M等。

fmt <- function(){
function(x) format(paste("$",x/1000000,"M",sep=""),nsmall = 2,scientific = FALSE)
}

然后我用

scale_y_continuous(labels = fmt())

但对于负数,我想在货币符号前面加上负号,所以我怀疑有更好的方法来做这个比使用粘贴。

1 个答案:

答案 0 :(得分:4)

fmt_mod <- function() {
     function(x) {
         y <- ifelse(x>=0, paste0("$", x/1000000, "M"), paste0("-$", -x/1000000, "M"))
         format(y, nsmall = 2, scientific = FALSE)
     }
}
ggplot(data.frame(x=1:5, y=(-2:2)*1e6), aes(x=x, y=y)) + 
  geom_point() + 
  scale_y_continuous(labels = fmt_mod())

enter image description here