Просто используйте аргумент palette
, соответствующий переменной hue :
sns.barplot(data=df, x=x, y=y, hue=z, palette='magma')
Для демонстрации со случайными данными:
import numpy as np
import pandas as pd
import time
from datetime import datetime
import matplotlib.pyplot as plt
import seaborn as sns
data_tools = ['sas', 'stata', 'spss', 'python', 'r', 'julia']
np.random.seed(11212018)
rand_df = pd.DataFrame({'GROUP': np.random.choice(data_tools, 500),
'INT': np.random.randint(1, 10, 500),
'NUM': np.random.randn(500),
})
fig, ax = plt.subplots(figsize=(15,5))
sns.barplot(data=rand_df, x='GROUP', y='NUM', hue='INT', palette='magma', ax=ax, ci=None)
plt.legend(bbox_to_anchor=(1,0.5), loc="center right",)
plt.show()
![Plot Output](https://i.stack.imgur.com/AIFmW.png)