1. ホーム
  2. r

[解決済み] ggplot2 で凡例を移動または配置する方法

2022-03-06 11:19:29

質問

ggplot2のプロットで、プロットの下に凡例があるものを作ろうとしています。

ggplot2 bookのp112によると、凡例の位置と両端揃えはテーマ設定のlegend.positionによって制御され、その値はright, left, top, bottom, none(凡例なし)、または数値位置です"とあります。

以下のコードは動作します(デフォルトが "right" なので)。凡例の位置を "none" とすると動作しますが、 "left", "top", "bottom" はすべて "Error in grid.Call.graphics("L_setviewport", pvp, TRUE) : non-finite location and/or size for viewport".Ort とエラーになってしまいます。

library(ggplot2)
(myDat <- data.frame(cbind(VarX=10:1, VarY=runif(10)), 
    Descrip=sample(LETTERS[1:3], 10, replace=TRUE)))
qplot(VarX,VarY, data=myDat, shape=Descrip) + 
    opts(legend.position="right")

何が間違っているのでしょうか?凡例の位置を変更することはよくあることなので、私のせいだと思うのですが。

解決方法は?

バージョン0.9.3では、( opts は非推奨となりました。)

theme(legend.position = "bottom")


古いバージョンです。

残念ながら、これはggplot2のバグで、この夏にはぜひとも直したいと思っています。

更新しました。

を含むバグが発生しました。 opts(legend.position = "left") の最新バージョンを使って修正されました。 ggplot2 . さらに、バージョン0.9.0では、以下のものが導入されました。 guide_legendguide_colorbar を使用すると、凡例自体の中の項目の外観や配置をより細かく制御することができます。例えば、凡例の項目の行と列の数を指定することができます。