2016-06-25 9 views
1

Ich mache ein Diagramm mit ggplolyt, das, wenn die Maus über einen Balken schwebt, Sie Werte von y Variable sehen, die in meinem Fall große Zahl ist.Können Zahlen in R formatiert werden, ohne die numerische Klasse zu verlieren?

Ich weiß, dass mit ggplot können Sie separate Spalten eine numerische haben, um Werte auf dem Diagramm und die anderen zu formatieren, Etiketten. Es ist also kein Problem, dass ich mit format function Charakter bekomme.

So ist die Frage, ob es möglich Formatnummer 100000000 100 000 000 ist und es bleibt numerisch so Balken aufgetragen und plotly werden können Etiketten

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) 
+0

Vielleicht brauchen Sie 'scale_y_continuous (labels = ...)' – akrun

Antwort

3

Für den Hover-Text schön formatierte Zahlen zeigt:

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