2017-07-21 21 views
1

我想調整圖表中的刻度標籤,以便它們顯示逗號作爲小數點分隔符和點作爲千位分隔符。在Plotly中更改R的區域設置(千位分隔符和十進制字符)

library(plotly) 
library(ggplot2) 
library(dplyr) 
diamonds %>% 
    mutate(cut = as.character(cut)) %>% 
    count(cut, clarity) %>% 
    plot_ly(x = ~cut, y = ~n, color = ~clarity) %>% 
     layout(yaxis = list(tickformat = ",.1f")) 

我的地方已被設置爲"LC_COLLATE=German_Austria.1252;LC_CTYPE=German_Austria.1252;LC_MONETARY=German_Austria.1252;LC_NUMERIC=C;LC_TIME=C"

+0

我無法運行您的代碼。它是否可重現? – Masoud

+0

@Masoud你需要包括'庫(dplyr)' – amonk

+1

謝謝@amonk併爲此道歉! '圖書館(dplyr)'確實缺失。 @Masoud我剛剛重新啓動了我的r會話,運行上面的代碼,事實上它確實運行了。 – phillyooo

回答

1

這是一個醜陋的答案,但你可以設置你的對象:

d2 <- diamonds %>% 
    mutate(cut = as.character(cut)) %>% 
    count(cut, clarity) 

,然後從那裏創建軸標籤:

ticklabels <- seq(from=0, to=round(max(d2$n), digits = -3), by=1000) 

創建自定義軸標籤:

plot_ly(d2, x = ~cut, y = ~n, color = ~clarity) %>% 
    layout(yaxis = list(tickvals = ticklabels, ticktext = paste(ticklabels/1000, ".000", ",00", sep="") ))