Вы можете использовать seaborn.barplot
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
df = pd.DataFrame({"knn": [0.93, 0.91, 0.91],
"naive": [0.83, 0.83, 0.85],
"decis": [0.96, 0.96, 0.96],
"random": [0.96, 0.96, 0.96],
"svm": [0.95, 0.95, 0.96]},
index=["accuracy", "jacard", "f1"])
df = df.stack().reset_index()
df.columns = ['metrics', 'algo', 'val']
sns.barplot(x='metrics', y='val',hue='algo', data=df)
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0)
plt.show()
, и вы получите:
![enter image description here](https://i.stack.imgur.com/cteAI.png)