Как перерабатывать цвета в палитре цветоводителей, используя линейные символы
Я использую ggplot2, чтобы создать немало facet_wrap
PED geom_line
сюжет.
Хотя каждый сюжет имеет не более восьми линий, вместе взятых, в легенде есть более двадцати категорий.
Аналогично этому: Порекомендуйте цвет шкалы для 13 или более категорий, и это: В R, как я могу изменить значение цвета только одного значения в scale_fill_brewer ggplot2? Я хотел бы искусственно увеличить количество цветов, которые я могу показать, используя высококонтрастные наборы цветов пивовара.
Казалось бы, очевидным способом сделать это является "переработка" цветов в палитре, каждый раз с другим символом линии. Ярко-красный с буквой "х" на линии может быть другой категорией, чем ярко-красный с буквой "О" и т. Д.
Кто-нибудь может подумать, как я могу это сделать?
Спасибо!
редактировать
Вот некоторые (санированные) данные для игры и код R, который я использую для создания своего графика.
Код 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")
1 ответ
Сделан фрейм данных, содержащий 20 уровней (в виде букв).
df<-data.frame(group=rep(c(LETTERS[1:20]),each=5),x=rep(1:5,times=20),y=1:100)
Ты можешь использовать 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))