Odpowiedzi:
Myślę, że szukasz tego:
require(ggplot2)
df <- data.frame(x=seq(1, 1e9, length.out=100), y=sample(100))
# displays x-axis in scientific notation
p <- ggplot(data = df, aes(x=x, y=y)) + geom_line() + geom_point()
p
# displays as you require
require(scales)
p + scale_x_continuous(labels = comma)
Czy próbowałeś czegoś takiego:
options(scipen=10000)
przed spiskowaniem?
To tylko aktualizacja tego, co zrobił @Arun, ponieważ wypróbowałem go dzisiaj i nie zadziałało, ponieważ został zaktualizowany do
+ scale_x_continuous(labels = scales::comma)
require(scales)
? Spowoduje to zaimportowanie pakietu zawierającego comma
skalę. Jak odkryłeś, możesz również określić pakiet podczas odwoływania się do niego, zamiast wymagać go wcześniej.
Bardziej ogólnym rozwiązaniem scales::format_format
jest usunięcie notacji naukowej. Daje to również dużą kontrolę nad tym, jak dokładnie chcesz wyświetlać etykiety, w przeciwieństwie doscales::comma
co ma miejsce tylko w przypadku oddzielania rzędów wielkości przecinkami.
Na przykład:
require(ggplot2)
require(scales)
df <- data.frame(x=seq(1, 1e9, length.out=100), y=sample(100))
# Here we define spaces as the big separator
point <- format_format(big.mark = " ", decimal.mark = ",", scientific = FALSE)
# Plot it
p <- ggplot(data = df, aes(x=x, y=y)) + geom_line() + geom_point()
p + scale_x_continuous(labels = point)
Istnieje rozwiązanie, które nie wymaga biblioteki wag.
Możesz spróbować:
# To deactivate scientific notation on y-axis:
p + scale_y_continuous(labels = function(x) format(x, scientific = FALSE))
# To activate scientific notation on y-axis:
p + scale_y_continuous(labels = function(x) format(x, scientific = TRUE))
# To deactivate scientific notation on x-axis:
p + scale_x_continuous(labels = function(x) format(x, scientific = FALSE))
# To activate scientific notation on x-axis:
p + scale_x_continuous(labels = function(x) format(x, scientific = TRUE))
Czy najprostszym ogólnym rozwiązaniem nie jest wyższe określenie kary, której używa R dla notacji naukowej?
tj. ustawić scipen()
na liczbę, z którą czujesz się komfortowo.
Np. jeśli maksymalna oś na wykresach może wynosić 100 000, ustawienie scipen(200000)
zapewni, że R (i ggplot) użyje standardowej notacji dla wszystkich liczb poniżej 200000 i nie będzie wymogu dodawania żadnych linii do funkcji ggplot.