Skip to content

Commit 8ed1ecc

Browse files
committed
fixed bug in hover data
1 parent 1db86d0 commit 8ed1ecc

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

Diff for: packages/python/plotly/plotly/express/_core.py

+13-4
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,14 @@ def get_label(args, column):
116116
return column
117117

118118

119+
def invert_label(args, column):
120+
reversed_labels = {value: key for (key, value) in args["labels"].items()}
121+
try:
122+
return reversed_labels[column]
123+
except Exception:
124+
return column
125+
126+
119127
def _is_continuous(df, col_name):
120128
return df[col_name].dtype.kind in "ifc"
121129

@@ -434,11 +442,12 @@ def make_trace_kwargs(args, trace_spec, trace_data, mapping_labels, sizeref):
434442
mapping_labels_copy = OrderedDict(mapping_labels)
435443
if args["hover_data"] and isinstance(args["hover_data"], dict):
436444
for k, v in mapping_labels.items():
437-
if k in args["hover_data"]:
438-
if args["hover_data"][k][0]:
439-
if isinstance(args["hover_data"][k][0], str):
445+
k_args = invert_label(args, k)
446+
if k_args in args["hover_data"]:
447+
if args["hover_data"][k_args][0]:
448+
if isinstance(args["hover_data"][k_args][0], str):
440449
mapping_labels_copy[k] = v.replace(
441-
"}", "%s}" % args["hover_data"][k][0]
450+
"}", "%s}" % args["hover_data"][k_args][0]
442451
)
443452
else:
444453
_ = mapping_labels_copy.pop(k)

Diff for: packages/python/plotly/plotly/tests/test_core/test_px/test_px_hover.py

+12
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,18 @@ def test_newdatain_hover_data():
7272
)
7373

7474

75+
def test_formatted_hover_and_labels():
76+
df = px.data.tips()
77+
fig = px.scatter(
78+
df,
79+
x="tip",
80+
y="total_bill",
81+
hover_data={"total_bill": ":.1f"},
82+
labels={"total_bill": "Total bill"},
83+
)
84+
assert ":.1f" in fig.data[0].hovertemplate
85+
86+
7587
def test_fail_wrong_column():
7688
with pytest.raises(ValueError) as err_msg:
7789
px.scatter(

0 commit comments

Comments
 (0)