python - 悬停数据未显示在绘图图中
问题描述
我想要一个已填充的雷达图并提供有关悬停的信息。我只得到其中一个工作。这是一个例子:
让我们假设我们有未透视的数据:
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'sample':['sample_1','sample_2','sample_3','sample_1','sample_2','sample_3','sample_1','sample_2','sample_3'],
'KPI':['KPI_1','KPI_1','KPI_1','KPI_2','KPI_2','KPI_2','KPI_3','KPI_3','KPI_3'],
'value':[1,2,1,1,1,2,2,1,1],
'sample_info':['info_1','info_1','info_1','info_2','info_2','info_2','info_3','info_3','info_3']})
df
sample KPI value sample_info
0 sample_1 KPI_1 1 info_1
1 sample_2 KPI_1 2 info_1
2 sample_3 KPI_1 1 info_1
3 sample_1 KPI_2 1 info_2
4 sample_2 KPI_2 1 info_2
5 sample_3 KPI_2 2 info_2
6 sample_1 KPI_3 2 info_3
7 sample_2 KPI_3 1 info_3
8 sample_3 KPI_3 1 info_3
我想要一个sample_info
悬停时的雷达图,如下所示:
fig = px.line_polar(df, r='value', theta='KPI', color='sample',line_close = True,
hover_data = ['sample_info'])
fig.show()
这很好用。现在我想填充图表:
fig = px.line_polar(df, r='value', theta='KPI', color='sample',line_close = True,
hover_data = ['sample_info'])
fig.update_traces(fill='toself')
fig.show()
现在,悬停信息以某种方式被覆盖。我用 custom_data 和 hovertemplate 试过了:
fig = px.line_polar(df, r='value', theta='KPI', color='sample',line_close = True,
custom_data = ['sample_info'])
fig.update_traces(fill='toself',hovertemplate="'sample_info: %{customdata[0]}'")
fig.show()
但没有成功。我错过了什么?提前致谢!
解决方案
您可以使用:
fig.for_each_trace(lambda t: t.update(hoveron='points'))
并得到:
完整代码:
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'sample':['sample_1','sample_2','sample_3','sample_1','sample_2','sample_3','sample_1','sample_2','sample_3'],
'KPI':['KPI_1','KPI_1','KPI_1','KPI_2','KPI_2','KPI_2','KPI_3','KPI_3','KPI_3'],
'value':[1,2,1,1,1,2,2,1,1],
'sample_info':['info_1','info_1','info_1','info_2','info_2','info_2','info_3','info_3','info_3']})
fig = px.line_polar(df, r='value', theta='KPI', color='sample',line_close = True,
hover_data = ['sample_info'])
fig.update_traces(fill='toself')
fig.for_each_trace(lambda t: t.update(hoveron='points'))
fig.show()
推荐阅读
- angular - 什么是 ng new --collection 命令在 Angular 中的使用
- wxwidgets - 如何让 Eclipse CDT 在 Windows 下与 WxWidgets 一起工作?
- r - 如何处理分类变量中的 NA 值?
- c# - 多次调用 FileSystemWatcher 事件
- javascript - 如何使用 SortableJS 和 jQuery 获取嵌套列表的顺序
- android - 如何创建一个包含 PDF 并在主页上显示的 APK
- python - 我正在使用 tkinter 在 python 中创建测验,但是当我尝试获得分数时,它并没有给我分数
- javascript - 如何在反应表中进行默认排序
- java - java.lang.NullPointerException 正在生成
- cucumber - 执行 Cucumber TestRun 文件时出现以下错误