[英]plotly: how to add different vertical lines in strip plot with categorical x-axis
我有一個帶有分類 x 軸的簡單條帶 plot。 我想為每個類別添加一條垂直線(在不同的 y 值上)。
我能夠在整個 plot 中創建一條垂直線,如下所示:
import plotly.express as px
fig = px.strip(df, x="category", y="value")
fig.add_hline(y=191)
結果如下所示:
但是,我無法為每個類別 plot 一條垂直線。
我想要的 output 是這樣的:
我嘗試在布局中添加形狀,但不影響 output:
fig.update_layout(shapes=[
dict( type= 'line',
yref= 'paper', y0= 180, y1= 180,
xref= 'x', x0= "cat1", x1= "cat1")])
如果 x 軸是數字,這樣的事情可能會起作用。 但是,不確定如何在此處指定類別。 如果這是通往 go 的方式,那么我可能做錯了。
如上所述,我如何能夠添加一條水平線,為每個類別添加不同的 y 值?
重現 plot 的數據:
import pandas as pd
df = pd.DataFrame(data={
"category": ["cat1", "cat1", "cat2", "cat2"],
"value": [150, 160, 180, 190]
})
添加帶有形狀的線條。 有兩種類型的坐標軸:x,y 軸和基於紙張的。 從您想要的 output 中,您可以讀取並指定 x 軸為紙質,y 軸為 y 軸值。
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'category':['cat1','cat1','cat2','cat2'],'value':[150,160,180,190]})
fig = px.strip(df, x="category", y="value")
fig.update_layout(shapes=[dict(type='line', x0=0.2, y0=180, x1=0.3, y1=180,
xref='paper', yref='y',
line_width=3, line_color='red'),
dict(type='line', x0=0.7, y0=192, x1=0.8, y1=192,
xref='paper', yref='y',
line_width=3, line_color='red'),
])
fig.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.