首页 > 解决方案 > R(ggplot)函数在现有图例中添加“空”行,拆分图例?

问题描述

我目前正在研究一个情节。这一切都在一起了,但我想知道一件事......我试着用谷歌搜索这个,但我找不到我要找的东西。

现在,我创造了一个我喜欢的传奇。使用“scale_color_manual”和“scale_size_manual”,我创建了一个组合图例,其中包括相应线条的粗细和颜色。我把我使用的代码放在下面。

scale_color_manual(name = "combined legend",
                     labels = c("Nederland totaal", "Noord-Holland", "Utrecht", "Noord-Brabant", "Zuid-Holland", "Gelderland", "Flevoland", "Overijssel", "Limburg", "Drenthe", "Zeeland", "Friesland", "Groningen"),
                     values=c("#000000", "#001EFF", "#2ECC71","#FF009D","#00FFCD",
                              "#FF8400", "#8514EB", "#EB1A14", "#FFE100", 
                              "#FF00AA", "#00AAFF", "#16A085", "#B903FC")) +   

scale_size_manual(name = "combined legend", 
                        labels = c("Nederland totaal", "Noord-Holland", "Utrecht", "Noord-Brabant", "Zuid-Holland", "Gelderland", "Flevoland", "Overijssel", "Limburg", "Drenthe", "Zeeland", "Friesland", "Groningen"),
                        values = c(1.75, 0.8, 0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8))

这就是传说现在的样子

这就是传说现在的样子。

我的问题是:是否有可能在第一个“传奇”部分之间创造一点空间(所以“Nederland total”和其他行?)。

我希望它看起来更像这样

我希望它看起来更像这样

(我做了这个是为了通过文字进行澄清)。

是否有在某些图例项之间添加一些空格的功能?我希望有人可以帮助我:))

更详细:

我正在使用的数据集是 2005 年到 2019 年荷兰各省的平均房价。我创建了一个 ggplot,当前的图现在看起来像这样。它基本上是一个ggplot,横轴是年份,纵轴是平均房价。我已经按省份对颜色进行了排序,并添加了与荷兰的总平均值相对应的黑色粗线(我也将其放入省向量中)。我用 geom_line 所有的图例项都是因子。我希望这足够清楚,如果没有,请告诉我

标签: rggplot2layoutlegend

解决方案


这可以应用于您的数据吗?

library(tidyverse)

tib <- 
  tibble(x = 1:3,
         a = 1:3,
         b = 1.5:3.5,
         c = 2:4) %>% 
  pivot_longer(cols = a:c, names_to = "id", values_to = "val")


ggplot()+
  geom_line(data = filter(tib, id == "a"), aes(x, val, linetype = id))+
  geom_line(data = filter(tib, id != "a"), aes(x, val, colour = id))+
  labs(linetype = "legend", colour = NULL)


给你:在此处输入图像描述


推荐阅读