<p>您可以使用包<code>seaborn</code>中的参数<code>hue</code>。首先,需要使用函数<code>melt</code>重塑数据集:</p>
<pre><code>import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
df1 = df.melt(id_vars=['Name', 'Target'])
print(df1.head(10))
</code></pre>
<p>输出:</p>
^{pr2}$
<p>现在您可以使用列<code>'variable'</code>作为函数<code>barplot</code>中的<code>hue</code>参数:</p>
<pre><code>fig, ax = plt.subplots(figsize=(10, 5)) # set the size of a figure
sns.barplot(x='Name', y='value', hue='variable', data=df1) # plot
xmin, xmax = plt.xlim() # get x-axis limits
ax.hlines(y=df1['Target'], xmin=xmin, xmax=xmax, color='red') # add multiple lines
# or ax.axhline(y=df1['Target'].max()) to add a single line
sns.set_style("whitegrid") # use the whitegrid style
ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.06), ncol=4, frameon=False) # move legend to the bottom
plt.title('Student Progress', loc='center') # add title
plt.yticks(np.arange(df1['value'].min(), df1['value'].max()+1, 10.0)) # change tick frequency
plt.xlabel('') # set xlabel
plt.ylabel('') # set ylabel
plt.show() # show plot
</code></pre>
<p><a href="https://i.stack.imgur.com/O0bt9.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/O0bt9.png" alt="enter image description here"/></a></p>