如何绘制堆栈条保持数据 Python 的顺序

问题描述

我有一个包含 3 列的 df:“Day-Shift”、“State”和“Seconds”。需要使用堆栈条形图来可视化这些数据,但要保持数据原样。

样本 DF:

    Day-Shift   State          seconds
    Day 01-05   A              7439
    Day 01-05   STOPPED        0
    Day 01-05   B              10
    Day 01-05   C              35751
    Night 01-05 C              43200
    Day 01-06   STOPPED        7198
    Day 01-06   F              18
    Day 01-06   A              14
    Day 01-06   A              29301
    Day 01-06   STOPPED        6
    Day 01-06   A              6663
    Night 01-06 A              43200

图表 X 轴:"Day-shift",Y:"seconds",color:"State""

例如:在第 01-05 天需要绘制与此 df 的顺序相同的图(第一个状态 A 和停止和 B,最后状态 C)。 我使用 python 绘图,但图表总是在堆栈栏底部保持相同的状态。有什么方法可以可视化与 python 中相同的数据顺序。

DF:

df = pd.DataFrame({'Day-Shift': {0: 'Day 01-05',1: 'Day 01-05',2: 'Day 01-05',3: 'Day 01-05',4: 'Night 01-05',5: 'Day 01-06',6: 'Day 01-06',7: 'Day 01-06',8: 'Day 01-06',9: 'Day 01-06',10: 'Day 01-06',11: 'Night 01-06',12: 'Day 01-07',13: 'Night 01-07',14: 'Night 01-07',15: 'Night 01-07',16: 'Night 01-07',17: 'Night 01-07',18: 'Night 01-08',19: 'Night 01-08',20: 'Night 01-08',21: 'Night 01-08',22: 'Day 01-08',23: 'Day 01-08',24: 'Day 01-08',25: 'Night 01-09',26: 'Night 01-09',27: 'Night 01-09',28: 'Day 01-09',29: 'Day 01-09',30: 'Day 01-09',31: 'Day 01-09',32: 'Day 01-10',33: 'Night 01-10',34: 'Day 01-11',35: 'Day 01-11',36: 'Day 01-11',37: 'Day 01-11',38: 'Day 01-11',39: 'Night 01-11',40: 'Day 01-12',41: 'Night 01-12',42: 'Day 01-13',43: 'Day 01-13',44: 'Day 01-13',45: 'Day 01-13',46: 'Day 01-13',47: 'Day 01-13',48: 'Day 01-13',49: 'Night 01-13',50: 'Day 01-14',51: 'Day 01-14',52: 'Day 01-14',53: 'Day 01-14',54: 'Day 01-14',55: 'Day 01-14',56: 'Day 01-14',57: 'Day 01-14',58: 'Day 01-14',59: 'Night 01-14'},'State': {0: 'D',1: 'STOPPED',2: 'B',3: 'A',4: 'A',5: 'A',6: 'A1',7: 'A2',8: 'A3',9: 'A4',10: 'B1',11: 'B1',12: 'B1',13: 'B1',14: 'B2',15: 'STOPPED',16: 'RUNNING',17: 'B',18: 'STOPPED',19: 'B',20: 'RUNNING',21: 'D',22: 'STOPPED',23: 'B',24: 'RUNNING',25: 'STOPPED',26: 'RUNNING',27: 'B',28: 'RUNNING',29: 'STOPPED',30: 'B',31: 'D',32: 'B',33: 'B',34: 'B',35: 'RUNNING',36: 'STOPPED',37: 'D',38: 'A',39: 'A',40: 'A',41: 'A',42: 'A',43: 'A1',44: 'A2',45: 'A3',46: 'A4',47: 'B1',48: 'B2',49: 'B2',50: 'B2',51: 'B',52: 'STOPPED',53: 'A',54: 'A1',55: 'A2',56: 'A3',57: 'A4',58: 'B1',59: 'B1'},'seconds': {0: 7439,1: 0,2: 10,3: 35751,4: 43200,5: 7198,6: 18,7: 14,8: 29301,9: 6,10: 6663,11: 43200,12: 43200,13: 5339,14: 8217,15: 0,16: 4147,17: 1040,18: 24787,19: 1500,20: 14966,21: 1410,22: 2499,23: 1310,24: 39391,25: 3570,26: 17234,27: 47390,28: 36068,29: 270,30: 6842,31: 20,32: 43200,33: 43200,34: 2486,35: 8420,36: 870,37: 30,38: 31394,39: 43200,40: 43200,41: 43200,42: 36733,43: 23,44: 6,45: 4,46: 4,47: 3,48: 6427,49: 43200,50: 620,51: 0,52: 4,53: 41336,54: 4,55: 4,56: 4,57: 23,58: 1205,59: 43200}})

情节代码

import plotly.express as px
fig = px.bar(df,x="Day-Shift",y="seconds",color="State")
fig.show()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...