Pandas 分组条形图
Pandas Grouped Bar Chart
我有一个 pandas 数据框 df 看起来像这样:
Timestamp ProductID. OrderCount
6/29/21 10:00 50100100200100 8
6/29/21 10:00 50100100200101 7
6/29/21 11:00 50100100200102 5
6/29/21 11:00 50100100200105 8
6/29/21 11:00 50100100200101 12
6/29/21 12:00 50100100200109 4
6/29/21 12:00 50100100200111 5
时间戳数据类型为datetime64[ns],ProductID和OrderCount分别为float64和int64。
我想绘制一个条形图,其中 X 轴上的 ProductIDs 将按 分组Timestamp 条形图的高度将为 OrderCount 值。
到目前为止我试过这个:
import pandas as pd
from datetime import datetime
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
barchart = px.bar(
data_frame = df,
x = "Timestamp",
y = "OrderCount",
orientation = "v",
barmode = 'group',
)
pio.show(barchart)
但这会叠加 OrderCount 值,并会为 Timestamp==6/29/21 打印 15 10:00,而不是将 8 和 7 绘制为单独的条形图。这里是 pandas 新手,非常感谢您的帮助。
X轴的分组目标是时间序列和ProductID。所以你需要指定 ProductID。对于颜色。 ID被解释为数值,显示颜色条,所以需要提前将ID转成字符串。
import pandas as pd
from datetime import datetime
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
barchart = px.bar(
data_frame = df,
x = "Timestamp",
y = "OrderCount",
color="ProductID.",
orientation = "v",
barmode = 'group',
)
pio.show(barchart)
选择:
df.pivot(*df).plot(kind='bar')
输出:
我有一个 pandas 数据框 df 看起来像这样:
Timestamp ProductID. OrderCount
6/29/21 10:00 50100100200100 8
6/29/21 10:00 50100100200101 7
6/29/21 11:00 50100100200102 5
6/29/21 11:00 50100100200105 8
6/29/21 11:00 50100100200101 12
6/29/21 12:00 50100100200109 4
6/29/21 12:00 50100100200111 5
时间戳数据类型为datetime64[ns],ProductID和OrderCount分别为float64和int64。
我想绘制一个条形图,其中 X 轴上的 ProductIDs 将按 分组Timestamp 条形图的高度将为 OrderCount 值。
到目前为止我试过这个:
import pandas as pd
from datetime import datetime
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
barchart = px.bar(
data_frame = df,
x = "Timestamp",
y = "OrderCount",
orientation = "v",
barmode = 'group',
)
pio.show(barchart)
但这会叠加 OrderCount 值,并会为 Timestamp==6/29/21 打印 15 10:00,而不是将 8 和 7 绘制为单独的条形图。这里是 pandas 新手,非常感谢您的帮助。
X轴的分组目标是时间序列和ProductID。所以你需要指定 ProductID。对于颜色。 ID被解释为数值,显示颜色条,所以需要提前将ID转成字符串。
import pandas as pd
from datetime import datetime
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
barchart = px.bar(
data_frame = df,
x = "Timestamp",
y = "OrderCount",
color="ProductID.",
orientation = "v",
barmode = 'group',
)
pio.show(barchart)
选择:
df.pivot(*df).plot(kind='bar')