84

プロットの下に凡例がある ggplot2 プロットを作成しようとしています。

ggplot2の本は、p 112で「凡例の位置と正当化は、テーマ設定のlegend.positionによって制御され、値は、右、左、上、下、なし(凡例なし)、または数値の位置にすることができます」と述べています。

次のコードは機能し (「右」がデフォルトであるため)、凡例の位置として「なし」でも機能しますが、「左」、「上」、「下」はすべて「Grid.Call のエラー」で失敗します。 .graphics("L_setviewport", pvp, TRUE) : ビューポートの位置および/またはサイズが限定されていません"

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")

私は何を間違っていますか?凡例を再配置することは非常に一般的であるに違いないので、それは私だと思います.

4

4 に答える 4

92

バージョン>0.9.3(opts非推奨の場合)

theme(legend.position = "bottom")

古いバージョン:

残念ながら、これはggplot2のバグであり、この夏に修正したいと思っています。

アップデート:

関連するバグopts(legend.position = "left")は、最新バージョンのggplot2を使用して修正されました。さらに、バージョン0.9.0では、レジェンド自体の中でアイテムの外観と配置をより細かく制御できるようになりましたguide_legendguide_colorbarたとえば、この機能は、凡例アイテムの行と列の数を指定します。

于 2010-06-02T02:22:02.377 に答える
4

凡例はいつでも手動で配置できますが、ラベルはまだ積み重ね/垂直であるため、見栄えが悪くなります。ハドリーがこれを修正する時間を見つけてくれることを本当に願っています:-)

p <- qplot(VarX,VarY, data=myDat, shape=Descrip) + 
opts(legend.position=c(.5,0.9),plot.margin = unit(c(6,0,0,0), "lines"))
于 2010-06-03T11:56:45.570 に答える