R中的数字可以格式化而不会丢失数字类吗?

时间:2016-06-25 11:30:29

标签: r ggplot2 format plotly

我正在使用ggplolty创建一个图表,当鼠标悬停在一个条形图上时,你可以看到y变量的值,这在我的情况下就是大数字。

我知道使用ggplot你可以有一个数字的单独列来获取图表上的值,另一列来格式化标签。所以使用格式函数我没有问题。

所以问题是它的格式编号是100000000是否为100 000 000 它保持数字,因此可以绘制条形图,并且图形标签将显示格式正确的数字

library(ggplot2)
    library(plotly)
    library(scales)

# here you can see numbers on chart after hover not nicely formatted
    df<-data.frame(x=letters[1:6],y=runif(6,120000000,130000000))
    ggplotly(ggplot(df,aes(x=x,y=y))+geom_bar(stat="identity"))
# and this unfortunately formats well but converts to character    
    df$y<-format(df$y,big.mark = " ")
    class(df$y)

1 个答案:

答案 0 :(得分:3)

悬停文字:

tmp <- ggplot(df,aes(x=x,y=y))+geom_bar(stat="identity")
p <- plotly_build(tmp)
p$data[[1]]$text <-prettyNum(df$y, big.mark = " ")
p