配色的朝阳图

问题描述 投票:2回答:1

我在r中有一个工作的朝阳图,但希望将其用颜色编码。我先用字母标记不同的片断,然后分别用0、1和2标记。我希望所有字母都是一种颜色,所有0都是一种颜色,而1和2相同。 。

我一直在尝试在旭日形中使用“ rects.fill.aes”,但是我不确定如何使用它来使颜色起作用。在本段之后,我将使用我一直在使用的编码过程,以确保您具有所有必要的知识。另外,如果有人知道如何使用它,那么内部节点标签会说“ NoName”以外的其他字词,对于以后的项目,我也将不胜感激。

library(ggsunburst)


nw<-"(A, B, C, D, E, F, ((1)1,(1)1)G, ((2)2,(2)2,1,1,1,1,2,2,2,2)H, ((1)0)AG,((2)0,((1)1)1)I,(((2)2)2)J, K, L, M, ((((1)0)1)1, (((1)0)1)1, (((1)0)1)1,(((2)2)0)2, (((2)2)0)2)N,O,P,Q,R,S,T,U,V,(1,1,1)W,X,(2)Y,Z,AA,AB,AC,AD,((((1)1)1)1)AE,((((1)1)1)1)AF);"

sb<- sunburst_data(nw)

sunburst(sb)
r ggplot2 sunburst-diagram
1个回答
0
投票

首先,我相信如果您从github下载最新版本,NoName问题就解决了https://github.com/didacs/ggsunburst

您可以如下使用rects.fill.aes

library(ggsunburst)
nw <-"(A, B, C, D, E, F, ((1)1,(1)1)G, ((2)2,(2)2,1,1,1,1,2,2,2,2)H, ((1)0)AG,((2)0,((1)1)1)I,(((2)2)2)J, K, L, M, ((((1)0)1)1, (((1)0)1)1, (((1)0)1)1,(((2)2)0)2, (((2)2)0)2)N,O,P,Q,R,S,T,U,V,(1,1,1)W,X,(2)Y,Z,AA,AB,AC,AD,((((1)1)1)1)AE,((((1)1)1)1)AF);"
sb <- sunburst_data(nw)

[sunburst_data返回data.frames的列表,sb$rects是可用于颜色的列表

> head(sb$rects)
  xmin xmax ymin ymax x name leaf
1  0.5  1.5   -5   -4 1    A TRUE
2  1.5  2.5   -5   -4 2    B TRUE
3  2.5  3.5   -5   -4 3    C TRUE
4  3.5  4.5   -5   -4 4    D TRUE
5  4.5  5.5   -5   -4 5    E TRUE
6  5.5  6.5   -5   -4 6    F TRUE

您可以使用任何这些列为森伯斯特着色。由于名称中包含NA,因此可以为它们分配特定的颜色。当然,如果需要,您可以在sb$rects中添加其他列]

sunburst(sb, rects.fill.aes = "name") + scale_fill_discrete(na.value = "white")

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.