微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

plotly Scatter customdata oare only NaN

如何解决plotly Scatter customdata oare only NaN

我想在将鼠标悬停在由 go.Scatter 创建的曲线上时显示其他数据。使用下面的脚本,弹出窗口中会显示正确的 x 和 y 值,但 x^2 和 cos 始终显示为 NaN。如有任何帮助,我将不胜感激。

import dash
import dash_html_components as html
import dash_core_components as dcc
import plotly.graph_objects as go
import numpy as np

x = np.mgrid[0.0:10.0:100j]
y = np.sin(x)

fig = go.figure()
fig.add_trace(go.Scatter(x = x,y = y,line_width = 4,customdata = [x**2,np.cos(x)],hovertemplate = "<br>".join([
                            "x = %{x:,.1f}","y = %{y:,"x^2 = %{customdata[0]:,"cos = %{customdata[1]:,.1f}"
                        ])
                    ))

app = dash.Dash()
app.layout = html.Div([dcc.Graph(figure=fig)])
app.run_server()

解决方法

import plotly.graph_objects as go
import numpy as np

x = np.mgrid[0.0:10.0:100j]
y = np.sin(x)

custom_data = np.stack((x**2,np.cos(x)),axis=-1)

fig = go.Figure()
fig.add_trace(go.Scatter(x = x,y = y,line_width = 4))
fig.update_traces(customdata=custom_data,hovertemplate ="x: %{x}<br>"+\
               "y: %{y}<br>"+\
               "x**2: %{customdata[0]: .1f}<br>"+\
               "cos: %{customdata[1]: .1f}")
fig.show()

Example Output Figure

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。