簡體   English   中英

如何獨立更改圖例中的顏色線大小和形狀大小?

[英]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)))

示例 plot

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM