繁体   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