x1c 0d1x悬停模板= '洲:%{df ['大陆']}
'+ '国家:%{df ['国家']}
“+”gdpPercap:%{x:,.4f}
“+”寿命:%{y}“+”“
我尝试使用悬停模板来自定义悬停信息。但是我不能让它显示我想要的。我得到x & y工作良好。我不知道如何添加其他字段到悬停模板虽然。任何帮助将不胜感激。
import numpy as np
df = df[df['year'] == 1952]
customdata = np.stack((df['continent'], df['country']), axis=-1)
fig = go.Figure()
for i in df['continent'].unique():
df_by_continent = df[df['continent'] == i]
fig.add_trace(go.Scatter(x=df_by_continent['gdpPercap'],
y=df_by_continent['lifeExp'],
mode='markers',
opacity=.7,
marker = {'size':15},
name=i,
hovertemplate=
'Continent: %{customdata[0]}<br>'+
'Country: %{customdata[1]}<br>'+
'gdpPercap: %{x:,.4f} <br>'+
'lifeExp: %{y}'+
'<extra></extra>',
))
fig.update_layout(title="My Plot",
xaxis={'title':'GDP Per Cap',
'type':'log'},
yaxis={'title':'Life Expectancy'},
)
fig.show()
更新了更多的代码。第一个答案不工作,只是返回comdata的文本值。
5条答案
按热度按时间r1wp621o1#
请参阅下面的示例,了解如何根据问题中包含的代码将
customdata
与多个跟踪一起使用。请注意,实际上需要将customdata
添加到图形跟踪中,以便在hovertemplate
中使用它,这也显示在Derek O的答案中。0md85ypi2#
对于
hovertemplate
字符串中除了{x}
和{y}
之外的任何其他变量,您需要创建一个名为customdata
的变量,它是DataFrame列的numpy数组(在您的示例中是df['continent'], df['country']
),并将customdata=customdata
传递给fig.update_layout
,这是@empet在他的Plotly论坛答案here中建议的。您可以尝试以下操作:
klr1opcd3#
以上答案的变体,仅使用Pandas/Python:
然后使用引用自定义数据的模板构建图形,如其他答案所示。以下是Scatter 3D的一个示例,并添加来自数据框两列的数据:
xdyibdwo4#
不用
customdata + hovertemplate
,你可以直接把格式化的文本传递给text
参数,我发现这更简单,也更强大--例如,如果你不想让所有元素都有完全相同的格式。这是可行的
text
元素不支持完整的HTML,但我看到它至少支持<br>
和<b>
标签,它似乎不支持<h1>, <nbsp>, <hr>
标签。我相信
hovertemplate
也是如此。qzlgjiam5#
下面是一个使用Plotly.js的Javascript示例,以防有人查找它。: