Python Plotly:在hoverlabel中显示值,而不是在堆叠区域图中显示百分比`groupnorm=';百分比'`
在下图中,悬停标签显示比例百分比值。我宁愿它显示出在那个特定日期每个大陆的实际价值。我不知道怎样才能做到。为清楚起见 亚洲将是Python Plotly:在hoverlabel中显示值,而不是在堆叠区域图中显示百分比`groupnorm=';百分比'`,python,plotly,data-visualization,plotly-python,Python,Plotly,Data Visualization,Plotly Python,在下图中,悬停标签显示比例百分比值。我宁愿它显示出在那个特定日期每个大陆的实际价值。我不知道怎样才能做到。为清楚起见 亚洲将是9而不是37.5,北美是13而不是54.16667,欧洲是2而不是8.333333(根据下文提供的数据) 日期 价值 大陆 2021-01-01 3. 亚洲 2021-01-02 7. 亚洲 2021-01-03 9 亚洲 2021-01-04 13 亚洲 2021-01-01 5. 北美 2021-01-02 8. 北美 2021-01-03 13 北美 2021-0
9
而不是37.5
,北美是13
而不是54.16667
,欧洲是2
而不是8.333333
(根据下文提供的数据)
日期
价值
大陆
2021-01-01
3.
亚洲
2021-01-02
7.
亚洲
2021-01-03
9
亚洲
2021-01-04
13
亚洲
2021-01-01
5.
北美
2021-01-02
8.
北美
2021-01-03
13
北美
2021-01-04
19
北美
2021-01-01
0
欧洲
2021-01-02
0
欧洲
2021-01-03
2.
欧洲
2021-01-04
3.
欧洲
目标
设置groupnorm='percent'
后,保持绘图原样,但仅在hoverinfo中显示单个值
答复
df['actual]=df['value']
px.area()中包含hover_data=['value','actual']
fig.update_跟踪(hovertemplate='{y}')
更改为fig.update_跟踪(hovertemplate='{customdata}')
px.area()
自动计算px.area中分配给y
的列的百分比(df,x='date',y='value'…
。设置悬停数据=['value',actual']
,不计算实际值
,该值稍后可通过fig.update\u跟踪(hovertemplate='%{customdata}')
在hoverinfor中访问
如果您从设置中删除fig.update_跟踪(hovertemplate=…)
,您将获得以下可能也感兴趣的hoverinfo:
情节2
在这种情况下,将值
更改为百分比
可能更有意义,毕竟它会显示:
情节3
图1的完整代码
图2的完整代码
图3的完整代码
这和px.area中没有groupnorm参数不一样吗?@Pygirl哈哈,是的!哦,好吧,回到绘图板=)@Pygirl我希望你会发现我的最新编辑更有用。我试图通过
customdata
解决它,但无法(不知道如何应用)+1演示:D.我明白了,关键点是悬停数据
,我在网上任何地方都找不到。@vesland一点也不急。我也会想办法,如果我不明白,我会发帖问。
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'date': list(pd.date_range(start='2021-01-01', periods=4, freq='D')) *3,
'value': [3,7,9,13,5,8,13,19,0,0,2,3],
'continent':['Asia'] * 4 + ['North America'] * 4 + ['Europe'] * 4})
df['actual'] = df['value']
fig = px.area(df, x='date', y='value', color='continent', groupnorm='percent',
hover_data = ['value', 'actual'])
fig.update_traces(hovertemplate='%{customdata}')
fig.update_layout(hovermode='x unified')
fig.show()
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'date': list(pd.date_range(start='2021-01-01', periods=4, freq='D')) *3,
'value': [3,7,9,13,5,8,13,19,0,0,2,3],
'continent':['Asia'] * 4 + ['North America'] * 4 + ['Europe'] * 4})
df['actual'] = df['value']
fig = px.area(df, x='date', y='value', color='continent', groupnorm='percent',
hover_data = ['value', 'actual'])
# fig.update_traces(hovertemplate='%{customdata}')
fig.update_layout(hovermode='x unified')
fig.show()
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'date': list(pd.date_range(start='2021-01-01', periods=4, freq='D')) *3,
'percent': [3,7,9,13,5,8,13,19,0,0,2,3],
'continent':['Asia'] * 4 + ['North America'] * 4 + ['Europe'] * 4})
df['actual'] = df['percent']
fig = px.area(df, x='date', y='percent', color='continent', groupnorm='percent',
hover_data = ['percent', 'actual'])
# fig.update_traces(hovertemplate='%{customdata}')
fig.update_layout(hovermode='x unified')
fig.show()