#r #ggplot2 #axis
#r #ggplot2 #ось
Вопрос:
Мне нужно поместить дополнительную правую ось y на график. Мне удалось сделать это в ggplot, используя приведенный ниже код. Но направление текста для этой оси противоположно направлению текста для основной оси y. Меня попросили сделать текстовые указания одинаковыми. Я искал инструкции для этого в справке ggplot и в Интернете, но нигде я не могу найти ничего о том, как управлять направлением заголовка вторичной оси (отметьте метки да, заголовки нет).
Я был бы признателен, если кто-нибудь может сказать мне, как это сделать. Спасибо.
tbbl <- tibble(ltrs = letters,
nums = rnorm(26)) %>%
mutate(rownum = row_number()) %>%
mutate(colr = factor(.$rownum %% 2, levels = 0:1) )
gx <- ggplot(data = tbbl, aes(x = rownum))
geom_col(aes(y = nums, colour = colr, fill = colr))
scale_y_continuous(sec.axis = sec_axis(~ . / 4.184,
name = 'Long title that my client finds hard to read if aligned the default way'))
labs(x = 'title for x axis', y = 'title for y axis')
print(gx)
Ответ №1:
Вы можете задать угол наклона заголовка вторичной оси y с помощью опции темы axis.title.y.right
:
library(ggplot2)
library(dplyr)
tbbl <- tibble(ltrs = letters,
nums = rnorm(26)) %>%
mutate(rownum = row_number()) %>%
mutate(colr = factor(.$rownum %% 2, levels = 0:1) )
ggplot(data = tbbl, aes(x = rownum))
geom_col(aes(y = nums, colour = colr, fill = colr))
scale_y_continuous(sec.axis = sec_axis(~ . / 4.184,
name = 'Long title that my client finds hard to read if aligned the default way'))
labs(x = 'title for x axis', y = 'title for y axis')
theme(axis.title.y.right = element_text(angle = 90))
Комментарии:
1. Большое вам спасибо. Именно то, что мне было нужно! Могу ли я спросить, как вы обнаружили, что замена «y.right» на «y» позволяет ссылаться на вторую ось? Я не смог найти эту информацию нигде в документации. К сожалению, я часто нахожу, что документация по функциям ggplot и tidyverse скудна, как в справке, так и на tidyverse.org . Я занимался переносом кода в tidyverse, но начинаю опасаться, что это могло быть ошибкой, учитывая скудость и противоречивость справочной документации — по сравнению с документацией для base R.
2. Хм. У меня тоже было тяжелое начало. Но после того, как мне удалось проникнуть в философию ggplot2, то есть в грамматику графики, я влюбился в ggplot2. (; Я не очень хорошо разбираюсь в базовом построении графика, но я предполагаю, что вначале, вероятно, сбивает с толку то, что, например, оси управляются разными слоями, например, у нас есть шкалы, координаты и, наконец, тема, которая управляет элементами, не относящимися к данным, или общим видом графика. Вот почему я знал, где мне нужно искать варианты. См. ggplot2.tidyverse.org/reference/theme.html#arguments . Лучший S.
3. Еще раз спасибо. Эта ссылка, похоже, представляет собой полный список существительных, которые я не смог найти. Я добавил его в закладки для дальнейшего использования.