Ну, ответ уже принят, но я думал, что все равно внесу это решение.Всегда приятно видеть несколько решений одной и той же проблемы.
Мне нравится использовать matplotlib для непосредственного построения графиков, так как легче настроить фигуру, чтобы она была точно такой, как мы хотим.Мне также нравится это решение, так как легко разумно раскрасить кошек (то есть, используя красные полосы для построения красных кошек)
Давайте начнем с импорта ваших данных:
import pandas as pd
from io import StringIO
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_fwf(StringIO("""
Cat Mon Tues Weds Thurs Fri Sat Sun
red 23 34 1 10 30 500 9
yellow 23 34 11 31 22 20 9
blue 23 34 123 10 412 4 9
black 23 34 11 321 53 7 9
"""), header=1)
Далее мы сделаемсюжет, убедившись, что графики окрашены разумно (то есть, количество красных кошек не представлено синими полосами):
fig, ax = plt.subplots(2, 2)
color = ['C3', 'C8', 'C0', 'k']
ax = ax.reshape(4)
for i in range(4):
ax[i].bar(np.r_[:7], df.T[i][1:], color=color[i])
ax[i].set_xticks(np.r_[:7])
ax[i].set_xticklabels(['Mon', 'Tue', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun'], rotation=90)
fig.tight_layout()
Все это дало мне следующее:
