plotly / plotly.py

The interactive graphing library for Python :sparkles: This project now includes Plotly Express!
https://plotly.com/python/
MIT License
15.72k stars 2.51k forks source link

Sankey Diagram Not Resolving HTML Tags in Labels #1499

Open JMante1 opened 5 years ago

JMante1 commented 5 years ago

When using html tags in the labels of a Sankey diagram the html itself is displayed rather than the resolved form (even though in the hover labels it is resolved).

I have added an example of code that generates this error below:

import plotly

data = dict(
    type='sankey',
    node = dict(
      pad = 15,
      thickness = 20,
      line = dict(
        color = "black",
        width = 0.5
      ),
      label = ['<a href="https://plot.ly/python/sankey-diagram/">A1</a>', 
                '<a href="https://plot.ly/python/sankey-diagram/">A2</a>', 
                '<a href="https://plot.ly/python/sankey-diagram/">B1</a>', 
                '<a href="https://plot.ly/python/sankey-diagram/">B2</a>', 
                '<a href="https://plot.ly/python/sankey-diagram/">C1</a>', 
                '<a href="https://plot.ly/python/sankey-diagram/">C2</a>'],
      color = ["blue", "blue", "blue", "blue", "blue", "blue"]
    ),
    link = dict(
      source = [0,1,0,2,3,3],
      target = [2,3,3,4,4,5],
      value = [8,4,2,8,4,2]
  ))

layout =  dict(
    title = "Basic Sankey Diagram",
    font = dict(
      size = 10
    )
)

fig = dict(data=[data], layout=layout)
plotly.offline.plot(fig, filename = 'issue.html', auto_open=True)
jonmmease commented 5 years ago

Thanks for the report @JMante1. @antoinerg, as things stand right now, do you expect HTML formatting to work in Sankey labels? Thanks!

antoinerg commented 5 years ago

Thank you @JMante1 for reporting this issue!

do you expect HTML formatting to work in Sankey labels?

@jonmmease I expected it to work but it seems like this feature wasn't implemented. I would consider this is a bug. I opened an issue here: https://github.com/plotly/plotly.js/issues/3742

jonmmease commented 5 years ago

Thanks @antoinerg!

jsulopzs commented 6 months ago

The same happens for parcats:

The following code:

    dim_nuevas = go.parcats.Dimension(
        values=df[elecciones_nuevas],
        categoryorder='category ascending',
        label='Elecciones Nuevas<br>'
    )

Will result in:

newplot