Если вы строите столбцы из нескольких столбцов (или строк и используете транспонирование .T), pandas назначит разные цвета каждому столбцу. Так что только 2 разных цвета в вашем случае. Будут использованы первые два элемента вашего цветового списка.
Если вам нужны отдельные цвета для каждого столбца, вам необходимо построить график два раза. Во второй раз используйте другой как нижний.
Некоторые примеры кода, чтобы показать, как это может работать:
import matplotlib.pyplot as plt
import pandas as pd
import random
d = {a: [random.randint(2, 5), random.randint(3, 7)] for a in list('abcdefghij')}
df = pd.DataFrame(d)
my_colors0 = [plt.cm.plasma(i / len(df.columns) / 2 + 0.5) for i in range(len(df.columns))]
ax = df.T[0].plot(kind='bar', color=my_colors0, width=0.7)
my_colors1 = [plt.cm.plasma(i / len(df.columns) / 2) for i in range(len(df.columns))]
ax = df.T[1].plot(kind='bar', bottom=df.T[0], color=my_colors1, width=0.7, ax=ax)
plt.show()
![sample plot](https://i.stack.imgur.com/pLuhe.png)