Hah*_*pro 3 plotly plotly-python
import plotly.express as px
px.box(df, x="people_num")
Run Code Online (Sandbox Code Playgroud)
我可以将鼠标悬停来显示该值。
但是,我希望注释始终处于打开状态,因为我将导出到 PNG 格式以放入我的报告中。中位数、q1、q3、栅栏、...
如何体现价值?
解决方案:plotly.express 无法使注释始终显示开箱即用(没有 True/False 标志来打开或关闭)。您应该自己添加注释。
我不相信 Plotly 有办法做到这一点。您将需要重新计算这些值(因为我无法找到从对象访问它们的方法fig
),然后使用注释添加它们。zip 函数可以稍微整合一下代码。
注意:Plotly 用于四分位数计算的线性方法和pandas 用于四分位数计算的线性方法似乎不会为 Q1 和 Q3 产生完全相同的结果,但希望我的答案中的通用方法对您仍然有用。如果您不介意该解决方案不可概括,但您只需要一个带有标记值的箱线图,则可以直接将值及其相应的名称直接传递到zip([],[...])
下面的代码块中。
import pandas as pd
import plotly.express as px
## create some random data that looks similar
df = pd.DataFrame({'people_num':[2,10,15,16,18,20,25,26,26,27,35,36,37,52]})
fig = px.box(df, x="people_num")
## loop through the values you want to label and add them as annotations
for x in zip(["min","q1","med","q3","max"],df.quantile([0,0.25,0.5,0.75,1]).iloc[:,0].values):
fig.add_annotation(
x=x[1],
y=0.3,
text=x[0] + ":" + str(x[1]),
showarrow=False
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3279 次 |
最近记录: |