plotly / plotly.R

An interactive graphing library for R
https://plotly-r.com
Other
2.57k stars 627 forks source link

Sankey Paths can be plotted outside the plot area #1758

Open wdm0336 opened 4 years ago

wdm0336 commented 4 years ago

When a link is plotted from a source node to the right of a target node on the diagram (the path loops around and goes upstream), then the path can be plotted outside the plot area. I have data that does this to such an extent that the hover information is not showing.

library(plotly)

fig <- plot_ly(
  type = "sankey",
  orientation = "h",

  node = list(
    label = c("A1", "A2", "B1", "B2", "C1", "C2"),
    color = c("blue", "blue", "blue", "blue", "blue", "blue"),
    pad = 15,
    thickness = 20,
    line = list(
      color = "black",
      width = 0.5
    )
  ),

# With your example, I added the 7th values in each of the vectors in the link list.
  link = list(
    source = c(0,1,0,2,3,3,4),
    target = c(2,3,3,4,4,5,3),
    value =  c(8,4,2,8,4,2,40)
  )
)
fig <- fig %>% layout(
  title = "Basic Sankey Diagram",
  font = list(
    size = 10
  )
)

fig
cpsievert commented 4 years ago

This issue would be best addressed in plotly.js itself (not the R package). In the meantime, you can workaround the issue by manually adding some appropriate margins

fig %>% layout(margin = list(b = 100, r = 50))