Ответы:
Думаю, вы это ищете:
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)
Вы пробовали что-то вроде:
options(scipen=10000)
перед построением графика?
Просто обновление того, что сделал @Arun, так как я попробовал это сегодня, и это не сработало, потому что оно было актуализировано до
+ scale_x_continuous(labels = scales::comma)
require(scales)
? Это импортирует пакет, содержащий comma
шкалу. Как вы обнаружили, вы также можете указать пакет при обращении к нему, вместо того, чтобы требовать его заранее.
В качестве более общего решения вы можете использовать scales::format_format
для удаления научного обозначения. Это также дает вам полный контроль над тем, как именно вы хотите, чтобы ваши ярлыки отображались, в отличие от того, scales::comma
что делает только разделение запятыми на порядок.
Например:
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)
Есть решение, для которого не требуется библиотека весов.
Можешь попробовать:
# 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))
Разве не самое простое общее решение установить более высокий штраф, который R использует для научной записи?
т.е. установить scipen()
на удобное для вас число.
например, если ваш максимум оси на диаграммах, вероятно, будет 100 000, установка scipen(200000)
гарантирует, что R (и ggplot) будет использовать стандартную нотацию для всех чисел ниже 200000, и не будет необходимости добавлять какие-либо строки в функцию ggplot.