#pandas #dataframe #matplotlib #plotly #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 и количество заказов-float64 и int64 соответственно.
Я хочу построить столбчатую диаграмму, на которой по оси X товары будут сгруппированы по метке времени, а высота столбиков будет значением количества заказов.
До сих пор я пробовал это:
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)
но это складывает значения количества заказов и выводит 15 для метки времени==6/29/21 10:00 вместо построения 8 и 7 в виде отдельных полос. Панды здесь новичок, так что помощь очень ценится.
Ответ №1:
Целью группировки по оси X является временной ряд и идентификатор продукта. поэтому вам нужно указать ProductID. из-за цвета. Идентификатор интерпретируется как числовое значение, и отображается цветовая полоса, поэтому вам необходимо заранее преобразовать идентификатор в строку.
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)
Комментарии:
1. Вы можете найти официальную ссылку здесь . Кроме того, если мой ответ был вам полезен, есть кнопка «Проверить», чтобы проверить и принять его.