#r #ggplot2
Вопрос:
Я создаю линейный график с помощью ggplot2, и я хочу удалить последний десятичный знак 0 с оси y. Выполнив следующий код, вы увидите, что ось y имеет отметки 0,050, 0,010, 0,005 и 0,001. Тем не менее, я хочу, чтобы отметки 0,05, 0,01, 0,005 и 0,001 удаляли окончательный 0. Как я могу этого достичь?
tibble(
timepoints = 1:100,
alpha = 1 - exp(log(0.95)/(1:100))
) %>%
ggplot(
.,
aes(
x = timepoints,
y = alpha
)
)
geom_point()
geom_line()
scale_x_continuous(
n.breaks = 6
)
scale_y_continuous(
breaks = c(
0.05,
0.01,
0.005,
0.001
)
)
theme(
text = element_text(size=30)
)
Комментарии:
1. Используйте
labels
аргумент для вашего вызоваscale_y_continuous
.2. @Limey получил это, и я получил то, что хотел! Вы можете опубликовать комментарий с полным кодом в качестве ответа. Я обязательно поддержу вас, если вы это сделаете.
Ответ №1:
Как указано в комментариях @Limey, вы можете использовать labels
аргумент для установки нужного текста. Я бы использовал функцию для удаления хвостовых нулей из десятичных знаков. Таким образом, если вы измените свои перерывы в будущем, метки по-прежнему будут иметь желаемый эффект.
tibble(
timepoints = 1:100,
alpha = 1 - exp(log(0.95)/(1:100))
) %>%
ggplot(aes(x = timepoints,y = alpha ))
geom_point()
geom_line()
scale_x_continuous( n.breaks = 6)
scale_y_continuous(breaks = c(0.05,0.01,0.005,0.001),
labels = function(x) sub("0 $", "", x))
theme(text = element_text(size=30))
Комментарии:
1. Спасибо вам за ответ, и это здорово знать, как получить эффект, не зависящий от перерывов, тоже!