#r #ggplot2 #axis
Вопрос:
В настоящее время у меня есть график, который выглядит примерно так 1, и я хотел бы переместить заголовок оси Y горизонтально вправо, чтобы зарплата превышала 150000. Ниже приведен текущий код.
ggplot(data=SalaryGender, aes(y=Salary, x=Age, color=Gender)) geom_point()
xlab("Age") ylab("salary") ggtitle("Relationship Salary, Age, and Gender") stat_smooth(method="lm", se=FALSE) theme_bw() theme(plot.title = element_text(face = "bold", size = 14),axis.text = element_text(face = "bold", size = 13),axis.title = element_text(face = "bold", size = 11),axis.title.y=element_text(angle=0))
Комментарии:
1. Вы можете изменить положение заголовка оси, добавив «hjust» для горизонтального и «vjust» для вертикального перемещения. ось.название. y=элементтекст(угол=0, hjust = -1, vjust = 1)) Это пример, но я не думаю, что вы можете подняться на вершину ценностей.
2. Вы также можете установить отрицательное правое поле в заголовке оси с помощью элемента темы.
Ответ №1:
Просто интересно annotate
, может ли это сделать трюк. Возможно, вам потребуется скорректировать x
и y
значения, а также добавить size
на вашей стороне
library(tidyverse)
df <- data.frame(
Salary = c(14000, 146000, 138000, 121000, 135000, 90000, 5000, 50),
Age = c(20, 40, 50, 79, 40, 30, 80, 50),
Gender = c("Female", "Male", "Female", "Male","Female", "Male","Female", "Male")
)
ggplot(data=df,
aes(y=Salary, x=Age, color=Gender))
geom_point()
xlab("Age") ylab("salary")
ggtitle("Relationship Salary, Age, and Gender")
stat_smooth(method="lm", se=FALSE) theme_bw()
theme(plot.title = element_text(face = "bold", size = 14),
axis.text = element_text(face = "bold", size = 13),
axis.title = element_text(face = "bold", size = 11),
axis.title.y = element_blank()
)
coord_cartesian(clip = "off", ylim = c(0, 150000), xlim = c(20, NA))
annotate("text", x = 12, y = 161000, label = "Salary")