如何为具有稳定映射的ggplot 2中的分类变量分配颜色?在过去的一个月里我一直在跟上R的步伐。以下是我的问题:在具有稳定映射的ggplot 2中,为分类变量分配颜色的好方法是什么?我需要一组具有不同子集和不同数量的分类变量的图形的一致颜色。例如,plot1 <- ggplot(data, aes(xData, yData,color=categoricaldData)) + geom_line()哪里categoricalData有5个等级。然后plot2 <- ggplot(data.subset, aes(xData.subset, yData.subset,
color=categoricaldData.subset)) + geom_line()哪里categoricalData.subset有三个等级。然而,在这两个集合中的一个特定级别将以不同的颜色结束,这使得在一起阅读图表变得更加困难。是否需要在数据帧中创建颜色向量?或者是否有其他方法为类别分配特定的颜色?
3 回答
慕森卡
TA贡献1806条经验 获得超8个赞
#Some test datadat <- data.frame(x=runif(10),y=runif(10), grp = rep(LETTERS[1:5],each = 2),stringsAsFactors = TRUE)#Create a custom color scalelibrary(RColorBrewer)myColors <- brewer.pal(5,"Set1")names(myColors) <- levels(dat$grp)colScale <- scale_colour_manual(name = "grp",values = myColors)
#One plot with all the datap <- ggplot(dat,aes(x,y,colour = grp)) + geom_point()p1 <- p + colScale#A second plot with only four of the levelsp2 <- p %+% droplevels(subset(dat[4:10,])) + colScale
慕妹3242003
TA贡献1824条经验 获得超6个赞
library(ggplot2)dataset <- data.frame(category = rep(LETTERS[1:5], 100), x = rnorm(500, mean = rep(1:5, 100)), y = rnorm(500, mean = rep(1:5, 100)))dataset$fCategory < - factor(dataset$category)subdata <- subset(dataset, category %in% c("A", "D", "E"))
ggplot(dataset, aes(x = x, y = y, colour = category)) + geom_point()ggplot(subdata, aes(x = x, y = y, colour = category)) + geom_point()
ggplot(dataset, aes(x = x, y = y, colour = fCategory)) + geom_point()ggplot(subdata, aes(x = x, y = y, colour = fCategory)) + geom_point()
- 3 回答
- 0 关注
- 2142 浏览
添加回答
举报
0/150
提交
取消