ggplot, как мне удалить научную запись форматированных долларовых значений по оси Y, которые встречаются только для кратных 100000? - PullRequest
0 голосов
/ 20 февраля 2019

Это немного странно.Я получаю принудительное научное обозначение только на некоторых из моих значений оси Y.Это происходит только тогда, когда я использую функцию paste0 для добавления $ в начало значений.

Примечание: я использую пакет ggthemes для форматирования своего графика, чтобы он был в стиле Tufte.Код не будет работать без загруженного пакета.Я изменил свое имя фрейма данных и одно имя переменной по соображениям конфиденциальности, когда вставил сюда код.Каждое значение точно такое же, как в моем реальном фрейме данных.

CalYear <- c("2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018")
Costs <- c(190603, 181218, 174725, 196229, 150204, 120100, 118044, 141857, 136107, 172380, 147384, 237452, 296331)
foo <- data.frame(CalYear, Costs)

ggplot(data=foo, aes(x=CalYear, y=Costs)) +
geom_bar(fill="gray", stat = "identity") +  
theme(axis.title=element_blank()) +
theme_tufte(base_size=14, ticks=F) +
scale_y_continuous(labels = function(x){paste0("$", x)},
                 limits = c(0,300000), breaks = seq(0,300000,50000)) +
geom_hline(yintercept=seq(0, 300000,50000), col="white", lwd=1) +
labs(x="Calendar year", y="Costs of active claims")

The plot with scientific notation

Но когда я не делаю форматирование доллара, числавсе в порядке.Код:

ggplot(data=foo, aes(x=CalYear, y=Costs)) +
geom_bar(fill="gray", stat = "identity") +  
theme(axis.title=element_blank()) +
theme_tufte(base_size=14, ticks=F) +
scale_y_continuous(limits = c(0,300000), breaks = seq(0,300000,50000)) +
geom_hline(yintercept=seq(0, 300000,50000), col="white", lwd=1) +
labs(x="Calendar year", y="Costs of active claims")

И полученный график:

Graph with no scientific notation but no dollar signs either

Я изменил размер шрифта, чтобы попытаться получить егоРабота.Это не имеет значения, и, если бы размер шрифта был проблемой, я бы получил научную запись для каждого числа?

Как видите, это касается только целых 100000 или каждого второго значения.Другие вопросы, которые я видел, это то, где весь набор значений по оси Y находится в научной записи, а не некоторые из них.И их значения по оси Y отображаются нормально, тогда как моя проблема возникает, когда была применена функция paste0.

Я также создал график без опции theme_tufte и "научной нотации".только на все 100000 с значений по оси Y "все еще происходит.

Почему некоторые из моих значений по оси Y в научной нотации , но только когда Я использую paste0 и как я могу удалить это?Из других ответов я видел, что предыдущее решение использования меток = доллар больше не работает, так как оно было включено в пакет scale .Я хотел бы выполнить работу с двумя пакетами вместо трех.

Что происходит не так, когда я использую paste0 и как я могу это исправить?

...