#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})
работает