Я пытаюсь создать график ggplot2 с легендой под графиком.
В книге ggplot2 говорится относительно p 112 "Положение, и выравнивание легенд управляются темой, устанавливающей legend.position, и значение может быть правильным, оставлено, вершина, нижняя часть, ни один (никакая легенда), или числовое положение".
Следующие работы кода (так как "право" это - значение по умолчанию), и оно также не работает ни с "одним" как положение легенды, но "оставленный", "вершина", "нижняя часть", весь сбой с "Ошибкой в сетке. 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")
Что я делаю неправильно? Менять местоположение легенды должно быть невероятно распространено, таким образом, я полагаю, что это - я.
В версиях > 0.9.3 (когда opts
был устаревшим)
theme(legend.position = "bottom")
Более старая версия:
К сожалению, это ошибка в ggplot2, которую я очень надеюсь исправить этим летом.
Обновление:
Ошибка, связанная с opts(legend.position = "left")
, была исправлена с помощью самой последней версии ggplot2. Кроме того, в версии 0.9.0 появились guide_legend
и guide_colorbar
, которые позволяют гораздо более тонко контролировать внешний вид и расположение элементов в самой легенде. Например, возможность указать количество строк и столбцов для элементов легенды.
Вы всегда можете разместить легенду вручную, но поскольку метка все еще расположена вертикально, это выглядит некрасиво. Я очень надеюсь, что Хадли найдет время исправить это: -)
p <- qplot(VarX,VarY, data=myDat, shape=Descrip) +
opts(legend.position=c(.5,0.9),plot.margin = unit(c(6,0,0,0), "lines"))