@ Roy2012 ответ идеален и должен оставаться принятым. Я просто хотел бы добавить plotly.express
версию
import pandas as pd
import numpy as np
import plotly.express as px
# generate dummy data
dates = pd.date_range("2020-01-01", "2020-06-30")
df = pd.DataFrame({"date": dates, "val": np.random.randint(0, 100, len(dates))})
df["dow"] = df["date"].dt.weekday_name
px.bar(df, x="date", y="val", color="dow")
And in case you want your legend go from Monday to Sunday you could add these 2 lines
df["dow"] = df["date"].dt.weekday
df = df.sort_values("dow").reset_index(drop=True)
df["dow"] = df["date"].dt.weekday_name
px.bar(df, x="date", y="val", color="dow")
введите описание изображения здесь