Привет этот простой код (и все мои сценарии с этого утра) начал давать мне не по центру заголовок в ggplot2
Ubuntu version: 16.04
R studio version: Version 0.99.896
R version: 3.3.2
GGPLOT2 version: 2.2.0
Я недавно установил вышеупомянутое выше этим утром, чтобы попытаться исправить это ....
dat <- data.frame(
time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23)
)
# Add title, narrower bars, fill color, and change axis labels
ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) +
geom_bar(colour="black", fill="#DD8888", width=.8, stat="identity") +
guides(fill=FALSE) +
xlab("Time of day") + ylab("Total bill") +
ggtitle("Average bill for 2 people")
... + theme(plot.title = element_text(hjust = 0.5))
Ответы:
Из новостей о выпуске
ggplot 2.2.0
: «Заголовок основного сюжета теперь выровнен по левому краю, чтобы лучше работать с субтитрами» . Смотрите такжеplot.title
аргумент в?theme
: "по левому краю по умолчанию".Как отмечает @J_F, вы можете добавить
theme(plot.title = element_text(hjust = 0.5))
в центр заголовок.источник
... theme(plot.title = element_text(hjust = 'center'))
я получаю предупреждающие сообщения об ошибках:1: In unit(rep(xp, n), "npc") : NAs introduced by coercionv2: In validDetails.text(x) : NAs introduced by coercion
и без заголовка. Это ошибка?hjust
должно быть числовым.theme(plot.title = element_text(hjust = 0.5))
, но он не сработал, это странно.Как указано в ответе Хенрика , заголовки по умолчанию выровнены по левому краю, начиная с ggplot 2.2.0. Заголовки можно центрировать, добавив это к графику:
Однако, если вы создаете много графиков, может быть утомительно добавлять эту строку везде. Затем можно также изменить стандартное поведение ggplot с помощью
После того, как вы запустите эту строку, все графики, созданные впоследствии, будут использовать настройку темы
plot.title = element_text(hjust = 0.5)
по умолчанию:Чтобы вернуться к исходным настройкам ggplot2 по умолчанию, вы можете либо перезапустить сеанс R, либо выбрать тему по умолчанию с помощью
источник
В
ggeasy
пакете есть функция, вызываемаяeasy_center_title()
именно для этого. Я нахожу это гораздо более привлекательным, чемtheme(plot.title = element_text(hjust = 0.5))
его, и его гораздо легче запомнить.Обратите внимание, что для написания этого ответа вам нужно будет установить версию для разработчиков
ggeasy
из GitHubeasy_center_title()
. Вы можете сделать это, запустивremotes::install_github("jonocarroll/ggeasy")
.источник