Cześć, ten prosty kod (i wszystkie moje skrypty od rana) zaczął nadawać mi tytuł poza centrum w ggplot2
Ubuntu version: 16.04
R studio version: Version 0.99.896
R version: 3.3.2
GGPLOT2 version: 2.2.0
Dziś rano zainstalowałem świeżo powyższą wersję, aby spróbować to naprawić ....
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))
Odpowiedzi:
Z wiadomości o wydaniu
ggplot 2.2.0
: „Główny tytuł fabuły jest teraz wyrównany do lewej, aby lepiej działał z napisami” . Zobacz takżeplot.title
argument?theme
: „domyślnie wyrównany do lewej”.Jak wskazał @J_F, możesz dodać,
theme(plot.title = element_text(hjust = 0.5))
aby wyśrodkować tytuł.źródło
... theme(plot.title = element_text(hjust = 'center'))
, dostaję komunikaty ostrzegawcze o błędach:1: In unit(rep(xp, n), "npc") : NAs introduced by coercionv2: In validDetails.text(x) : NAs introduced by coercion
i bez tytułu. Czy to błąd?hjust
musi być liczbowa.theme(plot.title = element_text(hjust = 0.5))
, ale nie zadziałał, to dziwne.Jak stwierdzono w odpowiedzi Henrika , tytuły są domyślnie wyrównane do lewej strony, zaczynając od ggplot 2.2.0. Tytuły można wyśrodkować, dodając to do fabuły:
Jeśli jednak utworzysz wiele wykresów, dodawanie tej linii wszędzie może być nużące. Można wtedy również zmienić domyślne zachowanie ggplot za pomocą
Po uruchomieniu tej linii wszystkie utworzone później działki będą używać
plot.title = element_text(hjust = 0.5)
domyślnego ustawienia motywu :Aby wrócić do pierwotnych ustawień domyślnych ggplot2, możesz albo ponownie uruchomić sesję R, albo wybrać domyślny motyw za pomocą
źródło
ggeasy
Pakiet posiada funkcję o nazwieeasy_center_title()
właśnie do tego. Uważam to za znacznie bardziej atrakcyjnetheme(plot.title = element_text(hjust = 0.5))
i łatwiej zapamiętać.Pamiętaj, że pisząc tę odpowiedź, będziesz musiał zainstalować wersję rozwojową
ggeasy
GitHub, aby użyćeasy_center_title()
. Możesz to zrobić, uruchamiającremotes::install_github("jonocarroll/ggeasy")
.źródło