2013-02-02 1 views
6

Próbuję sformatować oś y na wykresie ggplot z spacją (a nie przecinkiem) jako separatorem tysiąca ; coś jak 10 000, a nie 10 000. Nie mogę znaleźć tego w pomocy scale_y_continuous.Europejski/francuski separator tysięcy w ggplot

Dzięki za podpowiedź.

+0

wiem tego rodzaju rzeczy jest subiektywne, ale chciałbym zachęcić do korzystania 1E1, 1E2 itp. zamiast tego (lub 1,0 * 10^N, jeśli jest to bardziej przyjemne). Długie ciągi liczbowe, które nie zapewniają dodatkowej precyzji, nie są wcale użyteczne. –

+0

Coś tajemniczego, dlaczego 'ggplot2' nie jest domyślnie zgodny z ISU. Obecnie większość czasopism tego wymaga. –

Odpowiedz

1

Po prostu zaatakuję w ciemności, ale scale_y_continuous(labels = space) może załatwić sprawę.

+1

Nie sądzę, że istnieje formater formatowania 'space' w pakiecie ** scale **, ale napisanie go nie byłoby trudne. Po prostu użyj 'comma_format' jako szablonu. – joran

+0

Wielkie dzięki za pomysł, Joran. – user2035816

+0

@ user2035816 Użyj '@ joran', aby otrzymywać powiadomienia za każdym razem, gdy mu odpowiesz. Ponadto, zamknij pytanie, ponieważ teraz nie ma to znaczenia. – David

10

Jako @David i @joran właśnie powiedział.

Po pierwsze, określenie formatowania etykiecie:

space <- function(x, ...) { 
    format(x, ..., big.mark = " ", scientific = FALSE, trim = TRUE) 
} 

a następnie używać go z scale_y_continous:

plot + scale_y_continuous(labels = space) 
+0

to dodaje normalną przestrzeń jako separator, ale zazwyczaj przestrzeń jest mniejsza? czy możesz wymyślić sposób na osiągnięcie tego? – timat