首页 > 解决方案 > TOP 10 数据框 + 条形图

问题描述

我想:

我需要先做一个 value.count 吗?在创建 plt.bar 之前设置前 10 名?

# divided the director name

df['director'].str.split(',', expand=True).stack().reset_index(drop=True)

标签: pythonmatplotlibseaborn

解决方案


您可以创建一个countplot并使用order=参数来选择 10 个最高计数:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

# directors = df['director'].str.split(',', expand=True).stack().reset_index(drop=True)

np.random.seed(123456)
directors = pd.Series(np.random.choice(
    ['Allen', 'Almodóvar', 'Bergman', 'Buñuel', 'Chaplin', 'Eastwood', 'Fassbinder', 'Fellini', 'Hitchcock', 'Keaton',
     'Kubrick', 'Polanski', 'Renoir', 'Scorsese', 'Spielberg', 'Welles', 'Wenders', 'Wilder'], 200), name='Director')
ax = sns.countplot(y=directors, order=directors.value_counts().iloc[:10].index, palette='rocket')
ax.tick_params(axis='y', length=0)
plt.tight_layout()
plt.show()

seaborn countplot 10 最高


推荐阅读