我正试图在ggplot2图表上使用R代表负资金。 我有大量(数百万),所以我将轴上的数字转换为1M,2M等。
fmt <- function(){
function(x) format(paste("$",x/1000000,"M",sep=""),nsmall = 2,scientific = FALSE)
}
然后我用
scale_y_continuous(labels = fmt())
但对于负数,我想在货币符号前面加上负号,所以我怀疑有更好的方法来做这个比使用粘贴。
答案 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())