【发布时间】:2021-10-22 01:08:02
【问题描述】:
我想更改 python plotly boxplot 的悬停文本和悬停数据。我想要一个用于中位数、平均值、IQR 和日期的浓缩悬停框,而不是 5 个单独的悬停框用于最大值、q3、中值、q1 和最小值。我玩弄了每个“悬停”变量,但没有运气。下面是我的示例代码。
import numpy as np
import plotly.express as px
lst = [['2020'], ['2021']]
numbers = [20 , 25]
r = [x for i, j in zip(lst, numbers) for x in i*j]
df = pd.DataFrame(r, columns=['year'])
df['obs'] = np.arange(1,len(df)+1) * np.random.random()
mean = df.groupby('year').mean()[['obs']]
median = df.groupby('year').median()[['obs']]
iqr = df.groupby('year').quantile(0.75)[['obs']] - df.groupby('year').quantile(0.25)[['obs']]
stats = pd.concat([mean,median,iqr], axis=1)
stats.columns = ['Mean','Median','IQR']
tot_df = pd.merge(df,stats, right_index=True, left_on='year', how = 'left')
fig = px.box(tot_df, x="year", y="obs", points=False, hover_data=['year','Mean','Median','IQR'])
fig.show()
在这种情况下,我尝试使用“hover_data”,它不会引发错误,但也不会改变绘图,如上所示。我试过 express 和 graph_objects 都没有运气。我的情节版本是 4.9.0。谢谢!
【问题讨论】:
标签: python statistics plotly visualization boxplot