8

我正在使用 ggplot2 创建很多facet_wrappedgeom_line图。

虽然每个情节最多只有八行,但如果放在一起,则图例上要显示的类别多于二十个。

与此类似: 为 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

代码:

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")
4

1 回答 1

16

制作包含 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))

在此处输入图像描述

于 2013-02-27T13:27:08.883 回答