Я думаю, что есть более простой способ получить одинаковый цвет для всех полос.
import matplotlib.pyplot as plt
x = [1,2]
x_ticks = ['Tom', 'Dick']
y = [5,6]
plt.bar(x, y)
plt.xticks(x, x_ticks);
Если вы хотите использовать pandas
import pandas as pd
df = pd.DataFrame({'x': [1,2],
'y': [5, 6],
'name': ['Tom', 'Dick']})
ax = df.plot(x='x', y='y', kind='bar')
ax.set_xticks(df.index)
ax.set_xticklabels(df["name"], rotation=0);
или даже проще
df.plot(x='name', y='y', kind='bar', rot=0);