【问题标题】:Custom hover for scatter plot by color按颜色自定义悬停散点图
【发布时间】:2021-05-13 19:26:59
【问题描述】:

我正在使用 plotly 并尝试制作一个由变量着色的散点图,同时使用另一个变量来指示将鼠标覆盖在特定点上时应显示的文本。 看看我尝试了什么:

df = pd.DataFrame({
    'class': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'], 
    'coord_x': [4,5,6,3,1,-1,9,0,3.5,2], 
    'coord_y': [11,32,48,22,12,29,32,54,19,21],
    'description':['some description for A', 'something else for A', 'other description for A', 'AAA', 'aaa', 'bbb', 'bbb', 'description for C', 'cccc', 'cc']
})

fig = px.scatter(df, x="coord_x", y="coord_y", color="class")
fig.update_traces(hovertemplate="Hover_text: %{text}",
        text=[d for d in df.description.values.tolist()])

fig.show()

代码似乎工作,但它只有悬停工作“A”点,即使“B”和“C”在我的 pandas DataFrame 中没有相同的描述。 我该如何解决这个问题?

【问题讨论】:

    标签: python pandas plotly


    【解决方案1】:

    使用过图形对象而不是情节表达

    • 主要技术是将变量转换为数字
    • 使用唯一值数组中的索引
    import plotly.graph_objects as go
    
    df = pd.DataFrame({
        'class': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'], 
        'coord_x': [4,5,6,3,1,-1,9,0,3.5,2], 
        'coord_y': [11,32,48,22,12,29,32,54,19,21],
        'description':['some description for A', 'something else for A', 'other description for A', 'AAA', 'aaa', 'bbb', 'bbb', 'description for C', 'cccc', 'cc']
    })
    
    # color needs to be a number, use index of unique values
    go.Figure(data=go.Scatter(x=df.coord_x, y=df.coord_y, hoverinfo="text", text=df.description, mode="markers", 
                              marker={"color":df["class"].apply(lambda v: np.where(v==df["class"].unique())[0][0])}))
    
    

    【讨论】:

      【解决方案2】:

      我相信您可以在函数中添加参数hover_name 以使其显示每个点:

      fig = px.scatter(df, x="coord_x", y="coord_y", color="class",hover_name='description')
      

      例如:

      【讨论】:

      • 谢谢,但我不想要“class=C, coord_x = 2, coord_y = 21”,只需要“Hover_text: cc”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 2021-06-01
      • 1970-01-01
      • 2016-04-07
      • 2021-06-12
      • 2015-12-11
      相关资源
      最近更新 更多