简体   繁体   English

自定义悬停框绘图:Python 以适应文本

[英]Customize Hover Box Plotly: Python to Fit Text

Is there a way to customize the hover text box in plotly?有没有办法在 plotly 中自定义悬停文本框? The text I have to show up in the hover box is quite long and does not fit on the screen.我必须在悬停框中显示的文本很长,无法显示在屏幕上。 Is there are a way to change the dimensions of the hover text box or make the text smaller to have it all fit on the screen.有没有办法改变悬停文本框的尺寸或缩小文本以使其适合屏幕。 Even better would be a fixed box on the side of the chart that shows the corresponding note as I scroll over that data point but I am not sure how to do that.更好的是图表侧面的固定框,当我滚动该数据点时显示相应的注释,但我不知道如何做到这一点。

Here is a sample of what I'm trying to do with some similar length text.这是我尝试对一些相似长度的文本执行的操作的示例。

import plotly.plotly as py
from plotly.graph_objs import *
import plotly
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd


notes=["Clinton is also navigating delicate ties with Israel and the American Jewish community, an influential group of voters and donors. Israeli Prime Minister Benjamin Netanyahu, a fierce critic of the Obama administration's outreach to Iran, described the framework deal as a threat to the very survival of his nation.", "Fire crews in Cambria County were called to the Revloc duplex Friday morning and found much of the building engulfed in flames. Chief Deputy Coroner Jeffrey Leeds said at least seven people were in the duplex and all, but one, were able to get out safely.Witnesses said Jake Lewis, 24, re-entered the house to rescue 65-year-old Anna LaJudice. But father, Robert LaJudice, told The (Altoona) Mirror.Their bodies were later recovered. The deputy coroner said autopsies determined that both died from smoke and gas inhalation.", "As crews worked to tear down the rest of the home, Ott said she planned to attend a church service and say a prayer for the family."]
balance=[1000,2000,4000]
dates=[1,2,3]


data1 = Data([
    Scatter(
        x=dates,
        y=balance,
        mode='markers',
        text=notes,        
    )
])
layout = Layout(
    title='Hover over the points to see the text',autosize=True,   
)
fig = Figure(data=data1, layout=layout,)

fig['layout'].update(
    hovermode='closest',  
    showlegend=False,     
    autosize=True,       

)
plot_url = py.plot(fig, filename='hover-chart-basic')
py.plot(fig, filename='hover-chart-basic')

Any help would be much appreciated!任何帮助将非常感激!

You may want to look into annotations to create a fixed text box.您可能需要查看注释以创建固定文本框。 Check out our documentation here: https://plot.ly/python/text-and-annotations/ You'll see how to specify font sizes for either annotations or hover text.在此处查看我们的文档: https : //plot.ly/python/text-and-annotations/您将看到如何为注释或悬停文本指定字体大小。

The secret is to insert a html <br> tag every ~90 characters or so to your hover string text.秘诀是在您的悬停字符串文本中每大约 90 个字符插入一个 html <br> 标签。 You can use the regular expression below to match every ~90 lines.您可以使用下面的正则表达式来匹配每约 90 行。

(.{1,90})(\\s|$)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM