绘图不会突出显示由色调表示的列的所有唯一值
Plot does not highlight all the unique values of a column represented by hue
我的数据框有一列 'rideable_type',它有 3 个唯一值:
1.classic_bike
2.docked_bike
3.electric_bike
使用以下代码绘制条形图时:
g = sns.FacetGrid(electric_casual_type_week, col='member_casual', hue='rideable_type', height=7, aspect=0.65)
g.map(sns.barplot, 'day_of_week', 'number_of_rides').add_legend()
我只得到一个显示 2 个唯一 'rideable_type' 值的图。
剧情如下:
如您所见,只有 'electric_bike' 和 'classic_bike' 可见,而没有 'docked_bike'。
主要问题是所有的条都是在彼此之上绘制的。 Seaborn 的条形图不容易支持堆叠条形图。此外,这种创建条形图的方式不支持默认的“躲避”(barplot
为每个 hue
值单独调用,而需要一次调用它才能使躲避工作).
因此,推荐的方法是使用 catplot
,一种用于分类图的特殊版本 FacetGrid
。
g = sns.catplot(kind='bar', data=electric_casual_type_week, x='day_of_week', y='number_of_rides',
col='member_casual', hue='rideable_type', height=7, aspect=0.65)
这是一个使用 Seaborn 的 'tips' 数据集的示例:
import seaborn as sns
tips = sns.load_dataset('tips')
g = sns.FacetGrid(data=tips, col='time', hue='sex', height=7, aspect=0.65)
g.map_dataframe(sns.barplot, x='day', y='total_bill')
g.add_legend()
与sns.catplot
比较时,重合的柱线清晰:
g = sns.catplot(kind='bar', data=tips, x='day', y='total_bill', col='time', hue='sex', height=7, aspect=0.65)
我的数据框有一列 'rideable_type',它有 3 个唯一值: 1.classic_bike 2.docked_bike 3.electric_bike
使用以下代码绘制条形图时:
g = sns.FacetGrid(electric_casual_type_week, col='member_casual', hue='rideable_type', height=7, aspect=0.65)
g.map(sns.barplot, 'day_of_week', 'number_of_rides').add_legend()
我只得到一个显示 2 个唯一 'rideable_type' 值的图。
剧情如下:
如您所见,只有 'electric_bike' 和 'classic_bike' 可见,而没有 'docked_bike'。
主要问题是所有的条都是在彼此之上绘制的。 Seaborn 的条形图不容易支持堆叠条形图。此外,这种创建条形图的方式不支持默认的“躲避”(barplot
为每个 hue
值单独调用,而需要一次调用它才能使躲避工作).
因此,推荐的方法是使用 catplot
,一种用于分类图的特殊版本 FacetGrid
。
g = sns.catplot(kind='bar', data=electric_casual_type_week, x='day_of_week', y='number_of_rides',
col='member_casual', hue='rideable_type', height=7, aspect=0.65)
这是一个使用 Seaborn 的 'tips' 数据集的示例:
import seaborn as sns
tips = sns.load_dataset('tips')
g = sns.FacetGrid(data=tips, col='time', hue='sex', height=7, aspect=0.65)
g.map_dataframe(sns.barplot, x='day', y='total_bill')
g.add_legend()
与sns.catplot
比较时,重合的柱线清晰:
g = sns.catplot(kind='bar', data=tips, x='day', y='total_bill', col='time', hue='sex', height=7, aspect=0.65)