Reputation: 8386
I have a stacked bar chart. On the segments in the bar chart I want to add the numbers (y values) and on hover I want some different information to be shown (not name or x or y values).
Is it possible? From what I can see hoverinfo
let's you only duplicate the values in text or add the name.
import plotly
from plotly.graph_objs import Layout, Bar
hoverinformation = ["test", "test2", "test3", "test4"] # this info I would like it on hover
data = []
for index, item in enumerate(range(1,5)):
data.append(
Bar(
x="da",
y=[item],
name="Some name", # needs to be different than the hover info
text=item,
hoverinfo="text",
textposition="auto"
)
)
layout = Layout(
barmode='stack',
)
plotly.offline.plot({
"data": data,
"layout": layout
})
This is a simple stack bar and the value on hover would be either in a pandas dataframe or in a variable hoverinformation
Preferably a solution that doesn't involve the creation of 2 plots one on top of the other...
Upvotes: 1
Views: 3721
Reputation: 2308
Yes you can do this by using the hovertext
element. Docs
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
hoverinformation = ["test", "test2", "test3", "test4"] # this info I would like it on hover
data = []
for index, item in enumerate(range(1,5)):
data.append(
go.Bar(
x="da",
y=[item],
hovertext=hoverinformation[index], # needs to be different than the hover info
text=[item],
hoverinfo="text",
name="example {}".format(index), # <- different than text
textposition="auto",
)
)
layout = go.Layout(
barmode='stack',
)
iplot({
"data": data,
"layout": layout
})
Upvotes: 2