ggplot2のCenter Plotタイトル


256

こんにちは、この単純なコード(および今朝のすべてのスクリプト)は、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")

ここに画像の説明を入力してください


53
使用... + theme(plot.title = element_text(hjust = 0.5))
J_F 2016年

回答:


335

解放のニュースからggplot 2.2.0「メインプロットのタイトルになりまし左寄せされ、より良い、より良い作品に字幕で」。「デフォルトで左揃え」のplot.title引数も参照してください?theme

@J_Fで指摘されているようにtheme(plot.title = element_text(hjust = 0.5))、タイトルを中央に追加できます。

ggplot() +
  ggtitle("Default in 2.2.0 is left-aligned")

ここに画像の説明を入力してください

ggplot() +
  ggtitle("Use theme(plot.title = element_text(hjust = 0.5)) to center") +
  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 。タイトルはありません。これはバグですか?
James Hirschorn 2017年

2
@JamesHirschornこれはバグではありません。使用する値はhjust数値でなければなりません。
Stibu 2017年

ggplot2バージョン3.3.0以降、タイトルはデフォルトで中央揃えになっています。
Akronix

:あなたは周りの他の方法に興味がある場合:左揃えに中央-alingedから移動し、その後、あなたはSOのこの答えに使用することができますstackoverflow.com/a/57792897/2904315
Akronix

このコードを追加しましたtheme(plot.title = element_text(hjust = 0.5))が、うまくいきませんでした。
ahbon

134

Henrik回答で述べたように、タイトルはggplot 2.2.0以降、デフォルトで左揃えになっています。これをプロットに追加することにより、タイトルを中央に配置できます。

theme(plot.title = element_text(hjust = 0.5))

ただし、多くのプロットを作成する場合、このラインをどこにでも追加するのは面倒な場合があります。次に、ggplotのデフォルトの動作を

theme_update(plot.title = element_text(hjust = 0.5))

この行を実行すると、後で作成されるすべてのプロットplot.title = element_text(hjust = 0.5)は、デフォルトとしてテーマ設定を使用します。

theme_update(plot.title = element_text(hjust = 0.5))
ggplot() + ggtitle("Default is now set to centered")

ここに画像の説明を入力してください

元のggplot2のデフォルト設定に戻すには、Rセッションを再起動するか、デフォルトのテーマを選択してください

theme_set(theme_gray())

2

ggeasyパッケージには、呼び出された関数があるeasy_center_title()だけでそれを行うに。私はそれがはるかに魅力的でtheme(plot.title = element_text(hjust = 0.5))あり、覚えるのがはるかに簡単です。

ggplot(data = dat, aes(time, 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") +
  ggeasy::easy_center_title()

ここに画像の説明を入力してください

この回答を書いている時点ではggeasy、使用するにはGitHubの開発バージョンをインストールする必要があることに注意してくださいeasy_center_title()。これを実行するには、を実行しremotes::install_github("jonocarroll/ggeasy")ます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.