Я создаю визуализацию данных в R и использую библиотеку networkD3 для создания диаграммы Санки. Знаете ли вы, как я могу разместить все метки вне диаграммы?
Код, который я использовал для создания диаграммы, следующий:
inal_table <- yellow_df_sample_sankey %>% group_by(PULocationID,DOLocationID) %>%
summarize(Count = n())
final_table_ordered <- final_table[with(final_table, order(-Count)),]
final_table_head <- head(final_table_ordered, 50)
links <- data.frame(source = final_table_head$PULocationID,
target = final_table_head$DOLocationID,
value = final_table_head$Count)
links <- links %>% mutate(source = recode(source, !!!names),
target = recode(target, !!!names))
links$source <- paste0(links$source,'_s')
links$target <- paste0(links$target,'_t')
nodes <- data.frame(name=c(as.character(links$source), as.character(links$target))) %>%
distinct()
links$IDsource <- match(links$source, nodes$name)-1
links$IDtarget <- match(links$target, nodes$name)-1
links$group <- as.factor(links$source)
nodes$group <- as.factor(nodes$name)
p <- sankeyNetwork(Links = links, Nodes = nodes,
Source = "IDsource", Target = "IDtarget",
Value = "value", NodeID = "name",
sinksRight=TRUE, LinkGroup="group", NodeGroup="group", fontSize = 11)
p
Это дает мне этот график:
Мне нужен ярлык снаружи, поэтому для источника слева и для цели справа.
Есть предложения? Я читал в Интернете о
onRender(p,
'
function(el,x) {
d3.select(el)
.selectAll(".node text")
.attr("x", x.options.nodeWidth - 18)
.attr("text-anchor", "end");
}
'
)
Но это не работает должным образом, потому что он может перемещать только одну из двух боковых меток в зависимости от привязки.
Спасибо!