簡體   English   中英

plotly:如何在帶分類 x 軸的 plot 中添加不同的垂直線

[英]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 是這樣的:

在此處輸入圖像描述

我嘗試在布局中添加形狀,但不影響 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM