我如何在 seaborn (countplot) 中添加图例
how can I add legend in seaborn (countplot)
enter image description here
我正在尝试在此计数图中添加图例。不知道问题出在哪里?为什么它不起作用。有没有兄弟帮我解决这个问题?
ax=sns.countplot(x='Tomatoe types', data=df)
ax.set_title('Tomatoe types',fontsize = 18, fontweight='bold', color='white')
ax.set_xlabel('types', fontsize = 15, color='white')
ax.set_ylabel('count', fontsize = 15, color='white')
ax.legend(labels = ['Bad', 'Fresh', 'Finest'])
for i in ax.patches:
ax.text(i.get_x()+i.get_width()/2, i.get_height()+0.75, i.get_height(),
horizontalalignment='center',size=14)
您可以通过传递所需标签的列表来手动添加图例,如下所示:
plt.legend(labels = ['type 1', 'type 2'])
这里有一个很好的博客 post 关于这个主题:
https://www.delftstack.com/howto/seaborn/legend-seaborn-plot/
最简单的方法是使用 hue=
和 x=
相同的变量。您需要设置 dodge=False
,因为默认情况下会为每个 x - 色调组合保留一个位置。
from matplotlib import pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
df = pd.DataFrame({'Tomato types': np.random.choice(['bad', 'fresh', 'finest'], 200, p=[.1, .4, .5])})
ax = sns.countplot(x='Tomato types', hue='Tomato types', dodge=False, data=df)
ax.set_title('Tomato types', fontsize=18, fontweight='bold', color='white')
ax.set_xlabel('types', fontsize=15, color='white')
ax.set_ylabel('count', fontsize=15, color='white')
ax.figure.set_facecolor('0.3')
plt.tight_layout()
plt.show()
请注意,当您不使用 hue
时,不会添加图例,因为名称和颜色由 x 刻度标签给出。
enter image description here 我正在尝试在此计数图中添加图例。不知道问题出在哪里?为什么它不起作用。有没有兄弟帮我解决这个问题?
ax=sns.countplot(x='Tomatoe types', data=df)
ax.set_title('Tomatoe types',fontsize = 18, fontweight='bold', color='white')
ax.set_xlabel('types', fontsize = 15, color='white')
ax.set_ylabel('count', fontsize = 15, color='white')
ax.legend(labels = ['Bad', 'Fresh', 'Finest'])
for i in ax.patches:
ax.text(i.get_x()+i.get_width()/2, i.get_height()+0.75, i.get_height(),
horizontalalignment='center',size=14)
您可以通过传递所需标签的列表来手动添加图例,如下所示:
plt.legend(labels = ['type 1', 'type 2'])
这里有一个很好的博客 post 关于这个主题: https://www.delftstack.com/howto/seaborn/legend-seaborn-plot/
最简单的方法是使用 hue=
和 x=
相同的变量。您需要设置 dodge=False
,因为默认情况下会为每个 x - 色调组合保留一个位置。
from matplotlib import pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
df = pd.DataFrame({'Tomato types': np.random.choice(['bad', 'fresh', 'finest'], 200, p=[.1, .4, .5])})
ax = sns.countplot(x='Tomato types', hue='Tomato types', dodge=False, data=df)
ax.set_title('Tomato types', fontsize=18, fontweight='bold', color='white')
ax.set_xlabel('types', fontsize=15, color='white')
ax.set_ylabel('count', fontsize=15, color='white')
ax.figure.set_facecolor('0.3')
plt.tight_layout()
plt.show()
请注意,当您不使用 hue
时,不会添加图例,因为名称和颜色由 x 刻度标签给出。