gpt4 book ai didi

r - 如何为具有稳定映射的 ggplot2 中的分类变量分配颜色?

转载 作者:行者123 更新时间:2023-12-03 17:48:54 24 4
gpt4 key购买 nike

上个月我一直在加速使用 R。

这是我的问题:

在具有稳定映射的 ggplot2 中为分类变量分配颜色的好方法是什么?我需要在一组具有不同子集和不同数量分类变量的图形中使用一致的颜色。

例如,

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 个级别。

但是,两个集合中的特定级别最终将具有不同的颜色,这使得一起阅读图表变得更加困难。

我需要在数据框中创建一个颜色向量吗?还是有另一种方法可以为类别分配特定颜色?

最佳答案

对于像 OP 中的确切示例这样的简单情况,我同意 Thierry 的答案是最好的。但是,我认为指出另一种方法很有用,当您尝试在多个数据帧之间保持一致的配色方案时,该方法变得更加容易,而这些方案并非都是通过对单个大数据帧进行子集化获得的。如果从单独的文件中提取多个数据框中的因子级别,并且并非所有因子级别都出现在每个文件中,则管理多个数据框中的因子级别可能会变得乏味。

解决此问题的一种方法是创建自定义手动色标,如下所示:

#Some test data
dat <- data.frame(x=runif(10),y=runif(10),
grp = rep(LETTERS[1:5],each = 2),stringsAsFactors = TRUE)

#Create a custom color scale
library(RColorBrewer)
myColors <- brewer.pal(5,"Set1")
names(myColors) <- levels(dat$grp)
colScale <- scale_colour_manual(name = "grp",values = myColors)

然后根据需要将色标添加到绘图中:
#One plot with all the data
p <- ggplot(dat,aes(x,y,colour = grp)) + geom_point()
p1 <- p + colScale

#A second plot with only four of the levels
p2 <- p %+% droplevels(subset(dat[4:10,])) + colScale

第一个情节如下所示:

enter image description here

第二个情节是这样的:

enter image description here

这样您就不需要记住或检查每个数据框以查看它们是否具有适当的级别。

关于r - 如何为具有稳定映射的 ggplot2 中的分类变量分配颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26007227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com