向悬浮文本标签添加其他文本 [英] Adding additional text to the hovertext label
问题描述
我已经搜索了一段时间,但似乎找不到相关的问题.有类似的问题,但是没有什么让我尝试使用现有的代码.
I've searched for some time now and I can't seem to find a related question. There are similar questions, but nothing that gets to the heart of what I am trying to do with the code I have.
我正在尝试将其他文本添加到悬停文本中.到目前为止,这是我的代码:
I am trying to add additional text to the hovertext in plotly. Here is my code so far:
import pandas as pd
import numpy as np
from plotly.offline import *
init_notebook_mode(connected=True)
graph1 = merged.groupby(['study_arm', 'visit_label'])['mjsn'].mean().unstack('study_arm')
graph1.iplot(mode='lines+markers',
symbol=['diamond-open', 'square-open', 'circle-dot', 'hexagon-open'],
size=8, colorscale = 'dark2', yTitle='ytitle', xTitle='xtitle',
title='Title of Graph',
hoverformat = '.2f')
hv = merged.groupby(['study_arm', 'visit_label']).size()
print(hv)
注意:合并"是数据框,显示在下面的示例数据中.
Note: 'merged' is the dataframe and is shown in the sample data below.
上面的代码提供以下输出(注意:将鼠标悬停在时间点上会为每个跟踪提供一些信息,我拍了一张照片以显示其外观).
The code above gives the following output (note: hovering over the timepoint gives some information for each trace, and I took a picture to show what that looks like).
我的问题是如何在每个时间点从表中将每个跟踪的主题计数值获取到悬停文本中(最好在悬停文本的第二行上看起来像"N = x",其中x是主题编号从图片中图表下方的表格中提取.)
My question is how can I get the subject count number from the table into the hovertext for each trace at each timepoint (preferably on the second line of the hovertext that looks like 'N=x', where x is the subject number from the table under the graph in the picture).
这是我用来创建该图形和表格的虚拟数据集的一个 样本 :
Here is a sample of the dummy dataset I used to create this graph and table:
subject_number visit_label mjsn study_arm
20001 Day 1 0 B
20001 Month 06 0.4 B
20001 Month 12 0.2 B
20003 Day 1 0 B
20003 Month 06 -0.9 B
20003 Month 12 -0.7 B
20005 Day 1 0 C
20005 Month 06 0.1 C
20005 Month 12 -0.1 C
20007 Day 1 0 D
20007 Month 06 0 D
20007 Month 12 -0.3 D
20008 Day 1 0 C
20008 Month 06 -0.3 C
20008 Month 12 -0.1 C
20010 Day 1 0 A
20010 Month 06 -0.6 A
20010 Month 12 -0.4 A
推荐答案
您要为每个图表/迹线设置text
或hovertext
元素.文本和悬浮文本都将在这里工作.可能在此处一个>.您可能还想更改hoverinfo
元素.您的选择是'x', 'y', 'none', 'text', 'all'
.其他资源包括:文本和注释, Python示例.另外,为了获得某一时间段的病例数,我进行了两个不同的groupby
操作,然后将它们连接在一起.
You want to set the text
or hovertext
element for each chart/trace. Both text and hovertext will work here. The reason you may need both can be seen here. You may also want to change the hoverinfo
element. Your options are 'x', 'y', 'none', 'text', 'all'
. Additional resources are: text and annotations, docs, and python example. In addition, to get the count of cases at a time period I took two different groupby
operations and then concatenated them together.
使用数据框的示例:
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
import pandas as pd
df = pd.DataFrame({
'subject_number' : [20001, 20001, 20001, 20003, 20003, 20003, 20005, 20005,
20005, 20007, 20007, 20007, 20008, 20008, 20008, 20010, 20010, 20010],
'visit_label' : ['Day 1', 'Month 6', 'Month 12', 'Day 1', 'Month 6',
'Month 12', 'Day 1', 'Month 6', 'Month 12', 'Day 1', 'Month 6',
'Month 12', 'Day 1', 'Month 6', 'Month 12', 'Day 1', 'Month 6',
'Month 12'],
'mjsn':[0, 0.4, 0.2, 0, -0.9, -0.7, 0, 0.1, -0.1, 0, 0, -0.3, 0, -0.3, -0.1,
0, -0.6, -0.4],
'study_arm':['B', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'D', 'D', 'D',
'C', 'C', 'C', 'A', 'A', 'A']
})
grouped = df.groupby(['study_arm', 'visit_label'])
tmp1 = grouped.mean()["mjsn"]
tmp2 = grouped.count()["subject_number"]
output_df = pd.concat([tmp1, tmp2], axis = 1)
data = []
for study in output_df.index.get_level_values(0).unique():
trace = go.Scatter(
x = output_df.loc[study, :].index,
y = output_df.loc[study, "mjsn"],
hovertext= ["msjn:{0}<br>subject:{1}".format(x, int(y))
for x,y in zip(output_df.loc[study, "mjsn"],
output_df.loc[study, "subject_number"])],
mode = 'lines+markers',
hoverinfo = 'text'
)
data += [trace]
#
iplot(data)
类似的问题在此处和<在href ="https://stackoverflow.com/questions/48646880/direct-labels-and-hover-info-to-be-different-in-plotly">此处
这篇关于向悬浮文本标签添加其他文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!