绘图条形图:分面图/子图中条形的 x 轴对齐错误

Plotly bar charts: Wrong x-axis alignment of bars in facet/subplots

提问人:sim 提问时间:10/25/2023 更新时间:10/25/2023 访问量:38

问:

我正在尝试使用 plotly 为子组创建分隔的条形图,但如果子组之间的条形数量不同,则会遇到问题。当使用绘图表示条形图时,我们会遇到一个问题,即具有较小条形的分面中的 x 轴对齐看起来不对,因为缺失条形的空间仍然被阻塞。 使用 plotly.graph_objects。条形图,x 对齐似乎还可以,直到我想将条形图的宽度调整得更细。然后出现了一个丑陋的间隙,因为我无法同时设置宽度或间隙大小。

下面是一些示例数据和代码:

数据:

import pandas as pd
data = {'Facet':['A','A','B','B','B','B'],'ID':['01','01','02','02','03','03'],'Day':[0,3,0,3,0,3],'Val':[98,99,97,95,98,99]}
df = pd.DataFrame(data=data)

px 代码:


import plotly.express as px

fig = px.bar(df,x='Day',y='Val',color='ID',barmode='group',facet_col='Facet')
fig

结果 px:以图形方式表示分面条形图

使用 go 的代码:

import plotly.graph_objects as go
from plotly.subplots import make_subplots
grouped=df.groupby('Facet',sort=False)
fig2 = make_subplots(rows=1,cols=grouped.ngroups)
for i, (name,group) in enumerate(grouped):
    for subname,subgroup in group.groupby('ID'):        
        fig2.add_trace(go.Bar(x=subgroup['Day'],y=subgroup['Val'],name=subname,width=0.5),row=1,col=i+1)

fig2.update_layout(barmode='group',bargroupgap=0)       
fig2

结果:在子图中绘制对象条形图

我尝试使用alignmentgroup,offsetgroup修复它,但没有成功。任何提示都值得赞赏。

python-3.x plotly 条形图 子绘图 分面

评论


答:

1赞 Giovanni Amorim 10/25/2023 #1

可能从这里或只是使用答案可以帮助您。fig.update_xaxes(range=[min_range, max_range])

评论

0赞 sim 10/26/2023
嗨,乔瓦尼,谢谢你的回答,但轴范围不是这里的问题。