渐变不同颜色的树形图上的子组ggplot2 R

伊宝

我有一个树状图(如下所示)。我唯一要更改的是将子组的颜色(图中的YEAR)更改为不同的颜色,而不是全部为蓝色。这有可能吗?

样本数据框

PL <- c(rep("PL1", 4), repl("PL2", 4), rep("PL3", 4), rep("PL4", 4))
CNT <- sample(seq(1:50), 16)
YEAR <- rep(c("2015", "2016", "2017", "2018"), 4)

df <- data.frame(PL, YEAR, CNT)

情节

PL <- c(rep("PL1", 4), repl("PL2", 4), rep("PL3", 4), rep("PL4", 4))
    CNT <- sample(seq(1:50), 16)
    YEAR <- rep(c("2015", "2016", "2017", "2018"), 4)

    df <- data.frame(PL, YEAR, CNT)

    # plot
library(ggplot2)
library(treemapify)
treeMapPlot <- ggplot(df, aes(area = CNT,
                              fill = CNT,
                              label=PL, 
                              subgroup=YEAR)) +
      geom_treemap() +
      geom_treemap_subgroup_border(colour = "white") +
      geom_treemap_text(fontface = "italic",
                        colour = "white",
                        place = "centre",
                        grow = F,
                        reflow = T) +
      geom_treemap_subgroup_text(place = "centre",
                                 grow = T,
                                 alpha = 0.5,
                                 colour = "#FAFAFA",
                                 min.size = 0)

treeMapPlot

树状图

如果更改fillin,aes我可以得到这个,但会丢失渐变。我需要保留这些颜色,但要显示具有渐变颜色的图块,这意味着较小的CNT较亮,较大的CNT较暗

treeMapPlot <- ggplot(df, aes(area = CNT,
                              fill = YEAR,
                              label = PL, 
                              subgroup = YEAR))

在此处输入图片说明

卡米尔

这不是最漂亮的解决方案,但是将计数映射到Alpha可以模拟每种颜色的明暗梯度。aes(alpha = CNT)在内部添加geom_treemap,并根据需要缩放Alpha。

library(ggplot2)
library(treemapify)

PL <- c(rep("PL1",4),rep("PL2",4),rep("PL3",4),rep("PL4",4))
CNT <- sample(seq(1:50),16)
YEAR <- rep(c("2015","2016","2017","2018"),4)

df <- data.frame(PL,YEAR,CNT)

ggplot(df, aes(area = CNT, fill = YEAR, label=PL, subgroup=YEAR)) +

# change this line
    geom_treemap(aes(alpha = CNT)) +
    geom_treemap_subgroup_border(colour="white") +
    geom_treemap_text(fontface = "italic",
                                        colour = "white",
                                        place = "centre",
                                        grow = F,
                                        reflow=T) +
    geom_treemap_subgroup_text(place = "centre",
                                                         grow = T,
                                                         alpha = 0.5,
                                                         colour = "#FAFAFA",
                                                         min.size = 0) +
    scale_alpha_continuous(range = c(0.2, 1))

reprex软件包(v0.2.0)创建于2018-05-03

编辑添加:根据这篇关于黑客攻击人造梯度的文章,通过将Alpha缩放层放置在具有较深填充的层之上。在这里,我使用了两个geom_treemaps,一个用于fill = "black",一个用于alpha缩放。仍然有一些不足之处。

ggplot(df, aes(area = CNT, fill = YEAR, label=PL, subgroup=YEAR)) +
    geom_treemap(fill = "black") +
    geom_treemap(aes(alpha = CNT)) +
    geom_treemap_subgroup_border(colour="white") +
    geom_treemap_text(fontface = "italic",
                                        colour = "white",
                                        place = "centre",
                                        grow = F,
                                        reflow=T) +
    geom_treemap_subgroup_text(place = "centre",
                                                         grow = T,
                                                         alpha = 0.5,
                                                         colour = "#FAFAFA",
                                                         min.size = 0) +
    scale_alpha_continuous(range = c(0.4, 1))

reprex软件包(v0.2.0)创建于2018-05-03

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章