我有一段代码可以很好地绘制sns条带图:
f, ax = plt.subplots(figsize=(15,12))
sns.stripplot(data = cars, x='price', y='model', jitter=.5)
plt.show()
但有太多的汽车模型,所以我希望只可视化数据集中最频繁出现的前n个汽车模型。还有什么lambda计算或类似的东西可以应用于price
或model
而不创建单独的数据帧吗?
如果有更好的可视化库可以帮助,请随意提出。
您可以使用value_counts((找到列中出现次数最多的值。在这里,我选择了最常见的两种型号:
most_occurring_values = cars['model'].value_counts().head(2).index
然后,您可以过滤原始数据帧,只选择包含频率最高的模型的行:
cars_subset = cars[cars['model'].isin(most_occurring_values)]
最后,使用该子集绘制数据:
f, ax = plt.subplots(figsize=(15,12))
sns.stripplot(data = cars_subset, x='price', y='model', jitter=.5)
plt.show()
根据官方文件
order,hue_order:字符串列表,可选。在中绘制分类级别的顺序,否则根据数据推断级别对象
要选择前三种型号,您可以执行以下操作:
sns.stripplot(data = cars, x='price', y='model', jitter=.5, order=cars.model.value_counts().iloc[:3].index)