7

パブリケーション用のグラフを生成していますが、ggplot 自体で図のパネルにラベルを付けて (パブリッシャーなどにエクスポートするのではなく)、最終的なドキュメントにきちんと収まるようにしたいと考えています。タイトルに文字 (「A」) を追加してこれを実行しようとしましたが、タイトルを中央に配置し、文字を左上隅に配置したいと思います。

# base graph:

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species, shape = Species))+
  geom_jitter(size = 6.5)+
  ggtitle("A \n \n The Actual Long, Normal Title of Titliness")+
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 30),
        axis.ticks = element_blank(),
        legend.text = element_text(size = 25),
        axis.title = element_text(size = 25, face = "bold"),
        axis.text = element_text(size = 25, vjust = 0.05),
        legend.position = "bottom")

いやいや! どちらもグラフの中央に配置されています

さて、各タイトルの間隔を手動で「偽造」するだけなら、ある程度は機能させることができますが、これは時間がかかり、大雑把に思えます。

# sloppy solution
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species, shape = Species))+
  geom_jitter(size = 6.5)+
  ggtitle("A \n \n             The Actual Long, Normal Title of Titliness")+
  theme(plot.title = element_text(hjust = 0,face = "bold", size = 30),
        axis.ticks = element_blank(),
        legend.text = element_text(size = 25),
        axis.title = element_text(size = 25, face = "bold"),
        axis.text = element_text(size = 25, vjust = 0.05),
        legend.position = "bottom")

より良い間隔ですが、ずさんなコード

タイトルの各「行」を個別に呼び出す方法はありますか?

他にクリエイティブなソリューションはありますか?

また、mtext ( Splitting axis labels with Expression ) で可能性を見ましたが、ggplot2で実装する方法がわかりませんでした (vs base plot function.. 互換性がないようです)。この投稿はあらゆる種類の興味深いものでした (複数行の ggplot タイトルと異なるフォント サイズ、フェイスなど) が、私はまだ R を初めて使用するので、この巧妙なものを編集してインデントを変更する方法を理解できませんでした。

ありがとう!

4

5 に答える 5