python seaborn barplot 条形图不居中?

bis*_*smo 3 python matplotlib seaborn

我以前从未见过这个,但我正在制作的seaborn barplot 不会均匀地间隔条形......

代码

fig, ax = plt.subplots(figsize=(25,6))

sns.barplot(x=value.index, y="CustomerValue", data=value, 
            order=value.index, hue='Response')

plt.xticks(fontsize=10, rotation=90)
Run Code Online (Sandbox Code Playgroud)

数据

    Response    OrderCount  OrderAvgSize    AvgDeliverCost  AvgOrderValue   CustomerValue
CustomerID                      
508 Walmart+    48  22  4.94    14.60   700.80
2007    Both Or None    51  21  4.91    13.46   686.46
698 Walmart+    47  21  4.91    14.02   658.94
1664    Walmart+    45  22  4.94    14.60   657.00
475 Walmart+    45  22  4.94    14.60   657.00
575 Both Or None    51  20  4.87    12.88   656.88
1675    Both Or None    50  20  4.87    12.88   644.00
678 Both Or None    48  20  4.87    12.88   618.24
361 Both Or None    50  19  4.84    12.30   615.00
1627    Walmart+    41  22  4.94    14.59   598.19
1902    Both Or None    53  17  4.76    11.14   590.42
295 Walmart+    48  18  4.80    12.28   589.44
269 Both Or None    50  18  4.80    11.72   586.00
1814    Walmart+    45  19  4.84    12.86   578.70
588 Walmart+    38  23  4.97    15.17   576.46
2204    Both Or None    49  18  4.80    11.72   574.28
65  Both Or None    54  16  4.71    10.56   570.24
868 Walmart+    36  24  4.31    15.75   567.00
1436    Walmart+    42  20  4.87    13.43   564.06
1957    Walmart+    42  20  4.87    13.43   564.06
1754    Walmart+    43  19  4.84    12.85   552.55
2036    Walmart+    43  19  4.84    12.85   552.55
679 Walmart+    39  21  4.91    14.01   546.39
108 Walmart+    44  18  4.80    12.28   540.32
605 Both Or None    46  18  4.80    11.72   539.12
1477    Walmart+    40  20  4.87    13.43   537.20
1737    Walmart+    38  21  4.91    14.01   532.38
186 Walmart+    41  19  4.84    12.85   526.85
702 Walmart+    37  21  4.91    14.01   518.37
1572    Walmart+    37  21  4.91    14.01   518.37
1797    Walmart+    38  20  4.87    13.43   510.34
572 Walmart+    38  20  4.87    13.43   510.34
642 Walmart+    32  24  4.31    15.74   503.68
1787    Walmart+    39  19  4.84    12.85   501.15
387 Walmart+    39  19  4.31    12.85   501.15
991 Walmart+    39  19  4.84    12.85   501.15
1394    Walmart+    39  19  4.84    12.85   501.15
1966    Walmart+    33  23  4.97    15.16   500.28
1053    Walmart+    35  21  4.91    14.00   490.00
216 Walmart+    38  19  4.84    12.85   488.30
918 Walmart+    38  19  4.84    12.85   488.30
1518    Walmart+    49  14  4.62    9.96    488.04
565 Both Or None    46  16  4.71    10.56   485.76
845 Walmart+    36  20  4.87    13.43   483.48
1757    Walmart+    33  22  4.94    14.58   481.14
1983    Walmart+    33  22  4.94    14.58   481.14
2152    Walmart+    41  17  4.76    11.69   479.29
198 Both Or None    48  15  4.67    9.98    479.04
1990    Both Or None    48  15  4.67    9.98    479.04
1082    Walmart+    39  18  4.80    12.27   478.53
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会这样?会不会是有刻度线的东西?我尝试改变大小和旋转但无济于事。如果条形间隔均匀并且位于各自刻度线的正上方,那么它看起来会更美观。只有当多个蓝色条后面有一个红色条时,才会出现这种情况。我不知道要尝试什么来解决这个问题......

在此输入图像描述

Qua*_*ang 6

这是因为您的数据每个刻度只有 1 个条形图,而hue每个刻度线应该有 2 个条形图(每个类别一个)。尝试传递dodge=Falsesns.barplot

sns.barplot(x=value.index, y="CustomerValue", data=value, 
            order=value.index, hue='Response', dodge=False)
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述