Плотное выражение предотвращает появление текстовых значений в шаблоне наведения

#plotly #mousehover #plotly.js #plotly-express

Вопрос:

Как предотвратить отображение текстовых значений, переданных, как text=df.petal_width.values в примере ниже, во всплывающей подсказке при наведении? Они должны отображаться только в виде аннотаций непосредственно на графике.

сюжет

 import plotly.express as px  df = px.data.iris()  fig = px.scatter(  df,  x="sepal_length",  y="sepal_width",  color="species",  text=df.petal_width.values, )  fig.show()  

Чтобы быть ясным, я знаю, что мог бы передать text=df.petal_width , и значение всплывающей подсказки не было бы вызвано text , но petal_width . Это не то, чего я хочу. Я хочу, чтобы это полностью исчезло. Единственный способ, который я нашел до сих пор, — это уродливый:

 hov_temp = [  x for x in fig.data[0].hovertemplate.split("lt;brgt;") if not x.startswith("text") ] fig.data[0].hovertemplate = "lt;brgt;".join(hov_temp)  

Ответ №1:

Вы можете передать диктант с метками hover_data и text=df.petal_width :

 labels = {'species':True,'sepal_length':True,'sepal_width':True,'petal_length':False,'petal_width':False} fig = px.scatter(df,x='sepal_length',y='sepal_width',color='species',text=df.petal_width,hover_data=labels) fig.show()  

введите описание изображения здесь

Комментарии:

1. Идеально, похоже, labels = {'petal_width': False} этого достаточно.

2. text также может быть именем столбца. Так col='petal_width' и px.scatter(...,text=col,hover_data={col:False}) работает