closuresggplot中的一些传说
假设我有一个超过一个图例的ggplot。
mov <- subset(movies, length != "") (p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + geom_point() )
我可以closures所有图例的显示:
(p1 <- p0 + theme(legend.position = "none"))
将show_guide = FALSE
传递给geom_point
(按照这个问题 )closures形状图例。
(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + geom_point(show_guide = FALSE) )
但是如果我想closures颜色图例呢? 似乎没有办法告诉show_guide
将其行为应用于哪个图例。 尺度和美学没有show_guide
论据。
(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + scale_colour_discrete(show_guide = FALSE) + geom_point() ) # Error in discrete_scale (p4 <- ggplot(mov, aes(year, rating, shape = mpaa)) + aes(colour = length, show_guide = FALSE) + geom_point() ) #draws both legends
这个问题表明,现代(自ggplot2 v0.9.2)控制传说的方式是与guides
function。
我希望能够做到这样的事情
p0 + guides( colour = guide_legend(show = FALSE) )
但是guide_legend
没有show参数。
如何指定显示哪些图例?
您可以在scale_..._...()
使用guide=FALSE
来抑制图例。
对于你的例子,你应该使用scale_colour_continuous()
因为length
是连续variables(不是离散的)。
(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + scale_colour_continuous(guide = FALSE) + geom_point() )
或者使用函数guides()
您应该为那些不希望作为图例显示的元素/美学设置设置FALSE
,例如fill
, shape
, colour
。
p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + geom_point() p0+guides(colour=FALSE)
UPDATE
两个提供的解决scheme工作在新的ggplot2
版本2.0.0,但movies
数据集不再存在于这个库。 相反,你必须使用新的软件包ggplot2movies
来检查这些解决scheme。
library(ggplot2movies) data(movies) mov <- subset(movies, length != "")