Поместите все метки вне сети Sankey DiagramD3 - PullRequest
0 голосов
/ 17 января 2020

Я создаю визуализацию данных в 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

Это дает мне этот график:

enter image description here

Мне нужен ярлык снаружи, поэтому для источника слева и для цели справа.

Есть предложения? Я читал в Интернете о

onRender(p,
  '
  function(el,x) {
    d3.select(el)
      .selectAll(".node text")
      .attr("x", x.options.nodeWidth - 18)
      .attr("text-anchor", "end");
  }
  '
)

Но это не работает должным образом, потому что он может перемещать только одну из двух боковых меток в зависимости от привязки.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...