Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R(ggplot)函数在现有图例中添加“空”行,拆分图例?_R_Ggplot2_Layout_Legend - Fatal编程技术网

R(ggplot)函数在现有图例中添加“空”行,拆分图例?

R(ggplot)函数在现有图例中添加“空”行,拆分图例?,r,ggplot2,layout,legend,R,Ggplot2,Layout,Legend,我现在正在搞一个阴谋。一切都在一起,但我想知道一件事。。。我试着用谷歌搜索这个,但是我找不到我要找的东西 现在,我创造了一个我喜欢的传奇。通过“缩放颜色手册”和“缩放大小手册”,我创建了一个组合图例,其中包括相应线条的厚度和颜色。我把我使用的代码放在下面 scale_color_manual(name = "combined legend", labels = c("Nederland totaal", "Noord-Holland", "Utrecht

我现在正在搞一个阴谋。一切都在一起,但我想知道一件事。。。我试着用谷歌搜索这个,但是我找不到我要找的东西

现在,我创造了一个我喜欢的传奇。通过“缩放颜色手册”和“缩放大小手册”,我创建了一个组合图例,其中包括相应线条的厚度和颜色。我把我使用的代码放在下面

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))
这就是传说现在的样子

我的问题是:是否有可能在第一个“传奇”部分(如荷兰托塔)和其他线之间创造一点空间

我希望它看起来更像这样

我这样做是为了通过word进行澄清

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

更详细的信息:


我使用的数据集是2005年至2019年荷兰各省的平均年房价。我创建了一个ggplot,当前的plot看起来像现在。它基本上是一个水平轴上有年份,垂直轴上有平均房价的地块。我已经按省份对颜色进行了排序,并添加了黑色较粗的线条,对应荷兰的总平均值,我也将其放入了省份向量中。我使用了geom_线,所有图例项都是因数。我希望这足够清楚,如果不清楚,请告诉我这是否可以应用于您的数据

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)



给您:

这可以应用于您的数据吗

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)


给你:

一个选项是使用统计摘要

这将为图表增添另一种美感,从而创造出另一个与另一个相去甚远的传奇

airquality %>%
  mutate(Month=factor(Month)) %>%
  ggplot(aes(x=Day, y=Temp, col=Month)) +
  geom_line() +
  stat_summary(aes(lwd="Nederland totaal"), fun=mean, geom="line", col="black") +
  theme_classic() +
  theme(legend.title = element_blank()) + 
  guides(lwd = guide_legend(order = 1))
但是,这种方法的好处是,您不必计算每年的平均数并手动将其添加到您的省变量中。

一种选择是使用统计汇总

这将为图表增添另一种美感,从而创造出另一个与另一个相去甚远的传奇

airquality %>%
  mutate(Month=factor(Month)) %>%
  ggplot(aes(x=Day, y=Temp, col=Month)) +
  geom_line() +
  stat_summary(aes(lwd="Nederland totaal"), fun=mean, geom="line", col="black") +
  theme_classic() +
  theme(legend.title = element_blank()) + 
  guides(lwd = guide_legend(order = 1))

但这种方法的好处是,您不必计算每年的平均数,然后手动将其添加到您的省变量中。

您好,欢迎使用。您能分享一下您为实现合并传奇所做的步骤吗。还请提供一些样本数据。不需要是全部数据,只需要足够使问题重现即可,也就是说,不需要是所有的子组,也不需要是所有的观察结果谢谢您的回答!我编辑了我的帖子,我希望它现在更清楚:嗨,对不起,我不是很清楚。你能不能把完整的绘图代码贴出来,不仅仅是比例尺。。。电话。。请同时提供绘图的样本数据。。例如,使用dputheadyour_data输出部分数据,20并发布输出。这将帮助我们帮助你!这是一个非常糟糕的解决方案:但是您可以在Nederland totaal的末尾添加\n:Nederland totaal\n。它将在下面添加额外的空间。我现在还不确定这些台词的行为。嗨,欢迎来到SO。您能分享一下您为实现合并传奇所做的步骤吗。还请提供一些样本数据。不需要是全部数据,只需要足够使问题重现即可,也就是说,不需要是所有的子组,也不需要是所有的观察结果谢谢您的回答!我编辑了我的帖子,我希望它现在更清楚:嗨,对不起,我不是很清楚。你能不能把完整的绘图代码贴出来,不仅仅是比例尺。。。电话。。请同时提供绘图的样本数据。。例如,使用dputheadyour_data输出部分数据,20并发布输出。这将帮助我们帮助你!这是一个非常糟糕的解决方案:但是您可以在Nederland totaal的末尾添加\n:Nederland totaal\n。它将在下面添加额外的空间。现在还不确定这些线的行为,但我认为如果你尽量避免geom_调用中的管道,可读性会更好一些。也就是说,使用tibble作为filter的第一个参数。在这种情况下,我甚至可能会创建两个单独的数据帧,因为其中一个似乎包含总数,这在概念上对我来说似乎有点不同。+1另外,只是挑一个非常非常小的东西:我会使用labscolor=NULL-这将导致没有任何东西可以绘制,而不是一个看不见但存在的“东西”@Tjebo:太正确了,这样做会更好,我认为如果你尽量避免geom_调用中的管道,它的可读性会更好一些。也就是说,使用tibble作为filter的第一个参数。在这种情况下,我甚至可能会创建两个单独的数据帧,因为其中一个似乎包含总数,这在概念上对我来说似乎有点不同。+1另外,只是挑一个非常非常小的东西:我会使用labscolor=NULL-这将导致没有任何东西可以绘制,而不是一个看不见但存在的“东西”@Tjebo:太正确了,这样更好,还可以编辑