Направление поворота заголовка вторичной оси

#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. Еще раз спасибо. Эта ссылка, похоже, представляет собой полный список существительных, которые я не смог найти. Я добавил его в закладки для дальнейшего использования.