miedaの備忘録

わすれないように

ggplot2 の凡例

Rでグラフを書くときに便利なggplot2についてのメモ。
(ggplot2についてはそのうちまとめる。)

状況と達成したいこと

数値解をgeom_pointで点としてプロット、
解析解をstat_functionを使って線でプロットしている。
この時、点と線が混在した状態の凡例を作成したい。
(単純にcolourで凡例を作ると次のようになる。/画像準備)

解決策 : scale_coulor_hue と scale_shape を同時に使用する。

とりあえず、色と形状で個別にscaleを使用すれば凌げる。

graph <- ggplot(df) +
  geom_point(aes(t,x,shape="数値解"),size=5) +
  stat_function(ana_fun,aes(t,x,colour="解析解")) + 
  scale_colour_hue(name = "") +
  scale_shape(name = "",solid=TRUE ) +
  labs(x="t",y="x")+
  theme(axis.title = element_text(size=rel(2)),
        axis.text = element_text(size=rel(1.5)),
        legend.title = element_text(size=rel(1.5)),
        legend.text = element_text(size=rel(1.5))
  )
ggsave(filename,family="Japan1GothicBBB",plot=graph)

問題はこのプランだと、青丸・黒丸・赤線で示された3つのデータの凡例は書けないこと。
(この記事の一番最初の図みたいになる。)
いろいろ便利なggplot2だけど、凡例だけがちょっと使いづらいかも。