我有一个线条图,其中将颜色和形状组合到同一个图例中。我希望图例中的点大小更大,并且图例中的线保持相同,以便形状更清晰。
从ggplot2的图例中如何增加点的大小?我知道可以使用来更改点的大小+ guides(colour = guide_legend(override.aes = list(size=10)))
,但这也会更改行的大小。如果添加,guides(shape = guide_legend(override.aes = list(size=4)),color = guide_legend(override.aes = list(size=1)))
则表示`Duplicatedoverride.aes被忽略,仅使用第二个尺寸。
如何单独更改图例中的色线大小和形状大小?
示例代码:
example <- data.frame(a=c(1,2,3,1,2,3), b=c(0.1,0.2,0.3,0.4,0.5,0.6), c=c('a','a','a','b','b','b'))
ggplot(example, aes(x=a, y=b, color=c, shape=c))+
geom_line()+
geom_point()+
scale_colour_manual(name="title", breaks=c("a","b"),
labels=c("label1","label2"),
values=c("#e41a1c", "#377eb8"))+
scale_shape_manual(name="title", breaks=c("a","b"),
labels=c("label1","label2"),
values=c(15, 16))+
guides(shape = guide_legend(override.aes = list(size=4)),
color = guide_legend(override.aes = list(size=1)))
layer()
ggplot在幕后使用的函数具有一个key_glyph
参数,您可以为其提供自定义函数。您可以使用它来增大点,而不是线。如果需要自定义线调整,则可以编写类似的函数包装draw_key_path()
。
library(ggplot2)
example <- data.frame(a=c(1,2,3,1,2,3), b=c(0.1,0.2,0.3,0.4,0.5,0.6), c=c('a','a','a','b','b','b'))
large_points <- function(data, params, size) {
# Multiply by some number
data$size <- data$size * 2
draw_key_point(data = data, params = params, size = size)
}
ggplot(example, aes(x=a, y=b, color=c, shape=c))+
geom_line()+
geom_point(key_glyph = large_points)+
scale_colour_manual(name="title", breaks=c("a","b"),
labels=c("label1","label2"),
values=c("#e41a1c", "#377eb8"))+
scale_shape_manual(name="title", breaks=c("a","b"),
labels=c("label1","label2"),
values=c(15, 16))
由reprex软件包(v0.3.0)创建于2020-04-08
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句