当前位置: 首页 > 知识库问答 >
问题:

在plotly破折号散点图中设置悬停文本的长度

商正诚
2023-03-14

我在Dash中有一个散点图,其中文本属性(设置悬停显示的文本)被设置为从数据框中的某个列获取文本。

问题是一些悬停文本太长,会离开页面。有没有办法给悬停长度一个固定的长度,这样就不会发生这种情况?

我看到过使用数字数据的hoverformat来实现这一点。但我的悬停信息是文本。

共有1个答案

岳朝
2023-03-14

我不太确定是否有一个属性可以为hoverinfo设置一个固定的大小,但是在显示文本列表之前,您总是可以对文本列表进行一些预处理,这非常容易,而且还可以根据需要进行自定义

这是一种方法,

import dash
from dash.dependencies import Input, Output
import dash_html_components as html
import dash_core_components as dcc
import plotly.graph_objs as go
import json
import pandas as pd

app = dash.Dash()


#Consider this as the dataframe to be shown in hover
L = ["Text A", "Text B", "Text C", "Text D", "Text E"]
df = pd.DataFrame({'col':L})


# Here write your custom preprocessing function, 
# We can do whatever we want here to truncate the list
# Here every element in the list is truncated to have only 4 characters
def process_list(a):
    return [elem[:4] for elem in a]

app.layout = html.Div([
    dcc.Graph(
        id='life-exp-vs-gdp',
        figure={
            'data': [
                go.Scatter(
                    x = [1,2,3,4,5],
                    y = [2,1,6,4,4],
                    #call the pre processing function with the data frame
                    text = process_list(df['col']),
                    hoverinfo = 'text',
                    marker = dict(
                        color = 'green'
                    ),
                    showlegend = False
                )
            ],
            'layout': go.Layout(
            )
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)
 类似资料:
  • 我是Dash的新手,在尝试基于范围滑块的范围/值进行可视化筛选时遇到了一些问题。我已经附加了我下面使用的代码块,但我似乎无法开始工作。我已经看了留档,但不知道这个问题是否与RangeSliders有关,或者只是我如何尝试通过“和”命令过滤数据框。

  • 我正在绘制一个仪表板,在一个散点图中有多个x特征,每个特征要么显示为直线,要么显示为带标记的直线。 我已经根据我指定的要求构建了散点图,但是,当我在本地运行仪表板时,实际上看不到散点图 这是我写的代码 这是我的数据样本 }

  • 后果 我有这个数据框 代码是 但它不渲染。为什么啊?

  • 我将按照dash wind流媒体示例从MySQL数据库中流式传输数据。每5秒向数据库添加一次数据,并分别进行查询。我使用Interval组件进行查询,并使用隐藏的div进行存储。我将回调函数中的jsonified数据读入名为df的数据帧。 我使用以下命令生成跟踪:

  • 我的dash应用程序具有基于可用dash留档中找到的食谱的导航。它的工作原理,但它不好看。谁知道介绍菜单的更好方法?我不想开发一个特殊的流星组件,但我很乐意使用目前可用的框架之一(引导,语义学,...)。

  • 这是如何与datetime一起工作的?我不能绘图日期时间x日期时间对象?这个问题是由于在y轴上绘制“小时/分钟”时的一些问题,它变得混乱。 在这个例子中,我的小时图从11:13开始,到10:54结束,但是范围是08:33到11:55 在matplotlib中打印时,它可以识别范围(我想要的),但在dash中,它会创建一个从最低值到最高值的阶梯 是的,我已经尝试过'yax':{tickform:'%