I have recreated what I want in matplotlib so it looks like this:
This is a visualization of this data:
The (172, online) means to add a bar of width 172, with the label "online" (the color green) at the Y position "#7878"
This is almost what I need but I think I need to recursively add each data point instead of visualizing it directly from dataframe.