for index, row in df.iterrows():
    ax.bar([index], [row['value']], color=row['color'], label=row['label'],
        alpha=0.5, align='center')
ax.legend(loc='best', frameon=False)
ax.margins(0.05)
ax.set_ylim(bottom=0)
ax.patch.set_facecolor('0.9')
ax.grid(color='white', linestyle='-')
ax.set(axisbelow=True, xticklabels=[])
plt.show()
Гистограмма matplotlib с именами строк фрейма данных в качестве легенды