Как отобразить частоту, значение или число на диаграмме Санки в R - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу показать номер каждого бара на санки, как изображение, которое я загрузил, которое представляет население соответствующих путей лечения. Я перепробовал много способов добавить метки, но в сети D3 это не работает.

введите описание изображения здесь

источник изображения: https://onlinelibrary.wiley.com/doi/full/10.1002/pds.4874

enter code here
 s<-c( "A1","A1","B1","B1","B1","C1","C1","A2","B2","A2","B2","C2","A2" ,"A2","C2")
 t<-c("A2","B2","A2","B2","C2","A2","C2","C3","A3","A3","C3","C3","B3","C3" ,"B3")
 v<-c(4,2,3,2,1,7,2,3,2,2,2,1,1,3,2)
a<- data.frame(s,t,v)
a$s=as.character(a$s) 
a$t=as.character(a$t)

Sankeylinks<-a
Sankeynodes<-data.frame(name=unique(c(Sankeylinks$s,Sankeylinks$t)))

Sankeynodes$index<-0:(nrow(Sankeynodes)-1)   

Sankeylinks<-merge(Sankeylinks,Sankeynodes,by.x="s",by.y="name")

Sankeylinks<-merge(Sankeylinks,Sankeynodes,by.x="t",by.y="name")

Sankeydata<-Sankeylinks[,c(4,5,3)];
names(Sankeydata)<-c("Source","Target","Value")
Sankeyname<-Sankeynodes[,1,drop=FALSE]

Sankeyname$type2 <- sub(' .*', '',c("A","B","C","A","B","C","C","A","B")) 


my_color <- 'd3.scaleOrdinal() .domain(["A","B","C"]) 
                 .range(["#69b3a2","steelblue","red"])'

plot <- sankeyNetwork(Links=Sankeydata,Nodes=Sankeyname,Source="Source",
          Target="Target",Value="Value",NodeID="type2",    
          fontSize=12,nodeWidt=20, NodeGroup = "type2"  ,      
          sinksRight = FALSE,colourScale = my_color)

 plot  
...