You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用seaborn绘制数值最高的前5个平台的小提琴图

实现方法

你只需要先筛选出包含指定5个平台的数据集,再传入绘图函数即可,以下是两种常用实现方案:


方案1:先过滤数据集再绘图(更推荐,可读性更高)

# 定义需要保留的目标平台列表
target_platforms = ['Wii', 'NES', 'GB', 'DS', 'X360']
# 筛选仅包含目标平台的行
filtered_df = df[df['Platform'].isin(target_platforms)]
# 用过滤后的数据集绘图
sns.violinplot(x='Global_Sales', y='Platform', data=filtered_df)

注:这里将x、y参数修改为直接传列名字符串,配合data参数的写法更简洁,和你原写法效果完全一致。


方案2:绘图时临时过滤(无需生成新的DataFrame变量)

sns.violinplot(
    x=df.loc[df['Platform'].isin(['Wii', 'NES', 'GB', 'DS', 'X360']), 'Global_Sales'],
    y=df.loc[df['Platform'].isin(['Wii', 'NES', 'GB', 'DS', 'X360']), 'Platform']
)

可选优化:按平台总销量排序Y轴

如果你希望Y轴的平台顺序按总销量从高到低排列,可以加上order参数设置:

target_platforms = ['Wii', 'NES', 'GB', 'DS', 'X360']
filtered_df = df[df['Platform'].isin(target_platforms)]
# 计算每个平台的总销量,按从高到低得到排序后的平台列表
platform_order = filtered_df.groupby('Platform')['Global_Sales'].sum().sort_values(ascending=False).index
# 绘图时指定顺序
sns.violinplot(x='Global_Sales', y='Platform', data=filtered_df, order=platform_order)

内容的提问来源于stack exchange,提问作者Ruslan Pylypiuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:36:01