如何使用线符号回收colorbrewer调色板中的颜色

Lon*_*Rob 6 r ggplot2 colorbrewer

我正在使用ggplot2创建相当多的facet_wrapped geom_lineplot.

虽然每个地块最多只有八条线,但在一起时,更多的类似于图例上显示的二十个类别.

与此类似: 为13个或更多类别推荐比例颜色, 并且: 在R中,如何在ggplot2的scale_fill_brewer中更改一个值的颜色值?我想使用colorbrewer的高对比度颜色设置人为地增加我可以显示的颜色数量.

一个显而易见的方法似乎是"回收"调色板中的颜色,每次使用不同的线符号.如此明亮的红色与'x'在线上可能是一个不同的类别而不是亮红色与'o'等.

谁能想到我会怎么做?

谢谢!

编辑

这是一些(消毒的)数据,以及我用来制作我的情节的R代码.

数据:http://orca.casa.ucl.ac.uk/~rob/Stack%20Overflow%20question/stack%20overflow%20colours%20question%20data.csv

R代码:

csvData <- read.csv("stack overflow colours question data.csv")
p <- ggplot(csvData, 
  aes(year, percentage_of_output, colour=category, group=category)) 
p + 
  geom_line(size=1.2)  + 
  labs(title = "Can I recycle the palette colours?", y = "% of output") +
  scale_colour_brewer(palette = "Set1") + 
  theme(plot.title = element_text(size = rel(1.5))) +
  facet_wrap("country_iso3", scales="free_y")
Run Code Online (Sandbox Code Playgroud)

Did*_*rts 14

制作包含20个级别(作为字母)的数据框.

df<-data.frame(group=rep(c(LETTERS[1:20]),each=5),x=rep(1:5,times=20),y=1:100)
Run Code Online (Sandbox Code Playgroud)

您可以使用scale_colour_manual()设置行的颜色 - 例如,我使用了五个SET1并重复了四个times(总数为20).然后设置添加的形状geom_point()和scale_shape_manual()和五个不同的形状和重复each它们的四次(总数再次为20).

library(RColorBrewer)
ggplot(df,aes(x,y,colour=group))+geom_line()+geom_point(aes(shape=group),size=5)+
  scale_colour_manual(values=rep(brewer.pal(5,"Set1"),times=4))+
  scale_shape_manual(values=rep(c(15,16,17,18,19),each=5))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述