如何在ggplot中对颜色进行分组?

查里斯

我想绘制一些属于组的个人数据。

library(dplyr)
library(ggplot2)

x <- rep(1:10, 10)
y <- c(1:10, 2:11, 3:12, 4:13, 5:14, 6:15, 7:16, 8:17, 9:18, 10:19)
z <- c(rep(1, 10), rep(2, 10), rep(3, 10), rep(4, 10), rep(5, 10), rep(6, 10), rep(7, 10), rep(8, 10), rep(9, 10), rep(10, 10)) %>%
  as.factor()
z2 <- c(rep(1, 50), rep(2, 50))


tibble(x, y, z, z2) %>%
  ggplot(aes(x = x,
             y = y,
             color = z)) +
  geom_line()

简单的第一步是为z中每个人分配不同的颜色。
但是,理想情况下,我将另外能够根据z2进行分组,例如,第1组中的每个人在红色光谱中都有一种颜色,而第2组中的每个人在蓝色光谱中都有一种颜色(等等上)。
有没有办法以编程方式执行此操作?

拉普

此解决方案仅可针对每个组所需的不同颜色数量进行扩展,而不能针对您拥有的组数量(因此只有两个组)进行扩展:

首先,我们提取的唯一值数量z

colornumbers <- sapply(split(df, df$z2), function(x) length(unique(x$z)))
> colornumbers
1 2 
5 5 

然后,我们从两个不同的调色板(安装包grDevicescolorRamps创建一个颜色样本矢量

mycolors <- as.vector(mapply(function(x, y){
  x(y)
}, list(grDevices::heat.colors, colorRamps::blue2green), colornumbers))

> mycolors
 [1] "#FF0000FF" "#FF5500FF" "#FFAA00FF" "#FFFF00FF" "#FFFF80FF" "#0000FF"   "#0040BF"   "#008080"   "#00BF40"   "#00FF00"  

现在,我们用绘制scale_color_manual

tibble(x, y, z, z2) %>%
  ggplot(aes(x = x,
             y = y,
             color = z)) +
  geom_line() + 
  scale_color_manual(breaks = z, values = mycolors)

在此处输入图片说明

此解决方案还要求将这两个组按值进行排序,因此我不确定它在实际数据场景中的适用性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 ggplot2 中对堆叠条进行分组并修改某些值的颜色?

如何在不使用颜色的情况下对Boxplots进行分组或填写ggplot2

如何按填充颜色对 ggplot2 中的条进行分组,同时保持降序?

如何在 ggplot 中为变量分组?

如何在ggplot2中按图面对图例进行分组或获取单独的图例

根据行号对GGPlot颜色进行分组

如何在vba中对行进行分组?

如何在SQL中对列进行分组?

如何在Dart中对mixins进行分组?

如何在LINQ中对范围进行分组

如何在ReactJS中对组件进行分组

如何在excel中对列表进行分组?

如何在 vuejs 中对组件进行分组?

如何在单列中对行进行分组

如何在Sql中对表进行分组

如何在R中对颜色进行排序

如何在分组类型的UITableView中更改标题的字体颜色?

如何使用分组的ggplot中包含颜色名称的变量分配颜色?

如何在Sql Server中的列中对选择进行分组

如何在matlab中对矩阵中的元素进行分组?

如何在SQLite中的季度中对日期进行分组

R:如何在 ggplot 线图中组合分组和颜色 aesteric

如何根据我的分组值而不是R中ggplot中的填充值更改颜色?

如何在ggplot2中获得水平颜色渐变?

如何在Python的ggplot中更改点的颜色

如何在ggplot的strip.background中制作渐变颜色?

如何在ggplot2的颜色图例中更改文本

如何在ggplot中为线条设置不同的颜色

如何在Python中对装饰器进行分组