python-3.x - 如何在plotly中将hoverdata添加到fig.add_scatter的参数中

标签 python-3.x plotly

如何在plotly中将悬停数据添加到fig.add_scatter的参数中?它属于Fig = px.scatter,但我用它来提供名称参数。谢谢

这是数据:

file:
1       27  10  20.10.2021
2       10  11  21.10.2021
3       10  2   28.10.2021    
4       13  8   05.11.2021
5       17  5   17.11.2021

这是代码:

import plotly.express as px
import numpy as np
import pandas as pd
import plotly.graph_objects as go

datum = np.loadtxt('file', unpack=True, dtype='str', usecols=[3])
cislo, K, H = np.loadtxt('file', unpack=True, usecols=[0, 1, 2])

d = {'Datum': datum, 'B': K, 'C': H, 'cislo': cislo}
df = pd.DataFrame(data=d)

fig = px.scatter(df, x=[-100], y=[100]) # hover_data=['datum']

fig.add_scatter(x=df['cislo'], y=df['C'], hoverinfo='skip', mode="markers", marker=dict(size=10,color='Purple'), name = 'C')

fig.add_scatter(x=df['cislo'], y=df['B'], hoverinfo='skip', mode="markers", marker=dict(size=10,color='Green'), name = 'B')

fig.update_traces(
    hovertemplate="<br>".join([
        "<b>Value:</b>       %{y:.0f}",
        "<b>Date:</b>              %{customdata[0]}",
     ])
    )
fig.update_traces(mode='lines+markers')

layout = go.Layout(
    yaxis_range=[0,28],
    xaxis_range=[0.5,6],
    legend=dict(
        yanchor="top",
        y=0.95,
        xanchor="left",
        x=0.73,
     ),
    hoverlabel=dict(
        bgcolor="White",
    )
)
fig.layout = layout
fig.show()

最佳答案

  • 考虑到您构建hovertemplate以下作品的方式。
  • add_scatter() 是核心 API 方法(图形对象),而不是 plotlyexpress
import plotly.express as px
import numpy as np
import pandas as pd
import plotly.graph_objects as go

with open("file", "w") as f:
    f.write("""1       27  10  20.10.2021
2       10  11  21.10.2021
3       10  2   28.10.2021    
4       13  8   05.11.2021
5       17  5   17.11.2021""")

datum = np.loadtxt("file", unpack=True, dtype="str", usecols=[3])
cislo, K, H = np.loadtxt("file", unpack=True, usecols=[0, 1, 2])

d = {"Datum": datum, "B": K, "C": H, "cislo": cislo}
df = pd.DataFrame(data=d)

fig = px.scatter(df, x=[-100], y=[100])  # hover_data=['datum']

fig.add_scatter(
    x=df["cislo"],
    y=df["C"],
    customdata=df["Datum"].values.reshape([len(df), 1]),
    hoverinfo="skip",
    mode="markers",
    marker=dict(size=10, color="Purple"),
    name="C",
)

fig.add_scatter(
    x=df["cislo"],
    y=df["B"],
    customdata=df["Datum"].values.reshape([len(df), 1]),
    hoverinfo="skip",
    mode="markers",
    marker=dict(size=10, color="Green"),
    name="B",
)

fig.update_traces(
    hovertemplate="<br>".join(
        [
            "<b>Value:</b>       %{y:.0f}",
            "<b>Date:</b>              %{customdata[0]}",
        ]
    )
)
fig.update_traces(mode="lines+markers")

layout = go.Layout(
    yaxis_range=[0, 28],
    xaxis_range=[0.5, 6],
    legend=dict(
        yanchor="top",
        y=0.95,
        xanchor="left",
        x=0.73,
    ),
    hoverlabel=dict(
        bgcolor="White",
    ),
)
fig.layout = layout
fig

关于python-3.x - 如何在plotly中将hoverdata添加到fig.add_scatter的参数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70454841/

相关文章:

python - Plotly 3D 绘图注释

Python - 绘制周分布

Python - Dash 从 Excel 文件创建堆积条形图

python - Matplotlib 条形图 X 轴标签顺序

dictionary - 合并两个字典同时共享 key

python - 当列值匹配时,Pandas Dataframe 从行中替换 Nan

python - 如何针对复杂问题适本地使用位置参数

python - 多迹线图表上不必要的额外边距

python - 如何强制 Python (EMCEE) 在先前定义的范围之间精确移动

python - 为什么要开这个类?