我在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)
首先,我相信如果您从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")