Подтвердить что ты не робот

Ggplot2, ось не отображается после использования темы (axis.line = element_line())

Я пытаюсь сделать этот следующий график с помощью пакета ggplot2, но так или иначе ось не появится. тики есть, а не ось. Я использовал функцию theme(axis.line=element_line()), но это не сработало.

Вот мой код:

library(ggplot2)

ggplot(data = soepl_randsub, aes(x = year, y =satisf_org, group = id)) +
    geom_point() + geom_line() +ylab("Current Life Satisfaction") +theme_bw() +
    theme(plot.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank() ) +
    theme(panel.border= element_blank()) +
    theme(axis.line = element_line(color="black", size = "2")) 

Я не уверен, что пошло не так. Вот диаграмма.

введите описание изображения здесь

4b9b3361

Ответ 1

Ошибка была исправлена ​​в ggplot2 v2.2.0. Теперь больше нет необходимости указывать осевые линии отдельно.

Я думаю, что это ошибка в ggplot2 v2.1.0. (См. этот отчет об ошибках и этот.) Обходной путь состоит в том, чтобы отдельно установить оси оси x и оси y.

  library(ggplot2)

  ggplot(data = mpg, aes(x = hwy, y = displ)) + 
  geom_point() + 
  theme_bw() + 
  theme(plot.background = element_blank(),
         panel.grid.major = element_blank(),
         panel.grid.minor = element_blank() )+
  theme(panel.border= element_blank())+
  theme(axis.line.x = element_line(color="black", size = 2),
        axis.line.y = element_line(color="black", size = 2))

Ответ 2

Вам не нужно указывать размер оси для X и Y отдельно. Когда вы указываете size = "2", R рассматривает значение 2 как нечисловой аргумент. Следовательно, параметр оси-оси по умолчанию равен 0 размеру. Используйте эту строку кода:

ggplot(data = mpg, aes(x = hwy, y = displ)) + geom_point() +xlab("Date")+ylab("Value of Home")+theme_bw() +theme(plot.background = element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank()) + theme(panel.border= element_blank()) + theme(axis.line = element_line(color="black", size = 2))

axis_line наследует от строки в R, поэтому указание размера является обязательным для значений, отличных от значений по умолчанию.