[英]How can I change the colour line size and shape size in the legend independently?
我有一條線 plot 我將顏色和形狀組合成同一個圖例。 我希望圖例中的點大小更大,圖例中的線保持不變,以便形狀更清晰。
從如何增加 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)))
它說“重復的 override.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)))
ggplot 在后台使用的layer()
function 有一個key_glyph
參數,您可以向該參數提供自定義 function 。 您可以使用它來使點變大,但不能使線變大。 如果需要自定義線條調整,可以寫一個類似的 function 包裝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 package (v0.3.0) 於 2020 年 4 月 8 日創建
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.