Cómo reciclar colores en una paleta de creadores de color usando símbolos de línea

Estoy usando ggplot2 para crear bastantesfacet_wrappedgeom_line trama.

Aunque cada parcela solo tiene un máximo de ocho líneas, cuando se toman juntas, hay más de veinte categorías para mostrar en la leyenda.

En una vena similar a esto:Recomendar una escala de color para 13 o más categorías. y esto:En R, ¿cómo cambio el valor de color de solo un valor en scale_fill_brewer de ggplot2? Me gustaría aumentar artificialmente la cantidad de colores que puedo mostrar utilizando los conjuntos de colores de alto contraste de colorbrewer.

Una forma obvia de hacer esto parece ser "reciclar" los colores en la paleta, con un símbolo de línea diferente cada vez. Por lo tanto, el rojo brillante con 'x' en la línea podría ser una categoría diferente que el rojo brillante con 'o', etc.

¿Alguien puede pensar cómo podría hacer esto?

¡Gracias!

Editar

Aquí hay algunos datos (desinfectados) para jugar, y el código R que estoy usando para producir mi trama.

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

Código 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")

Respuestas a la pregunta(1)

Su respuesta a la pregunta