2017-10-13 5 views
0

私はクライアントが同じ凡例を上下に置く必要があるところのグラフを用意しています。 ggplotを使って、上または下のどちらかに置くことができます。しかし、私は両方の場所で複製のオプションについて認識していません。同じ凡例Ggplot2で2回

私はlegend.positionをc( 'top'、 'bottom')として配置しようとしましたが、それは私にエラーを与えています。

他のライブラリでも対応できますか?私は上下に同じ伝説を2回したいですか?

はあなたがプロットされているときにggplot2が使用する中間図形オブジェクト(grobs)と仕事をしなければならないインスタンス

library(ggplot2) 
bp <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() 
bp <- bp + theme(legend.position="bottom") 
bp 
+0

別個のggplot凡例とggplot図を作成し、それらを結合して合成図形にすることができます。詳細が必要な場合は、再現可能な例を提供してください。 – Djork

+0

@Djork - 完了。この例をとり、凡例を上に追加してください。 – vrajs5

答えて

1

ために、このコードを取ります。

私はStackOverflowで凡例を抽出するためにここを流していた関数を取得し、今はCRAN上にあるパッケージに入れます。ここ

は、溶液は次のとおり

library(lemon) 
bp <- bp + theme(legend.position='bottom') 
g <- ggplotGrob(bp) 
l <- g_legend(g) 
grid.arrange(g, top=l) 

g_legendはグロブバージョン(すなわちggplot2オブジェクトを操作することができない)、通常ggplot2オブジェクトの両方を受け入れます。 ggplotGrobを使用するのは片道です。一度変換するとggplot2に戻すことはできません。しかし、この例のように、元のggplot2オブジェクトを保持します。 ;)

関連する問題