Seaborn中的绘制频率

时间:2019-04-12 00:45:50

标签: jupyter seaborn

我正在查看一个SNL数据集,我想用seaborn来研究几个不同的东西。

我正在使用它来学习有关jupyter中可视化的更多信息(又名我是初学者)。

数据集如下所示: enter image description here

援助:演员
能力:他们的角色是什么
charid:唯一字符ID
impid:唯一的模拟ID
角色:他们扮演的角色名称
提示:素描ID
声音:他们只是画外音吗?
epid:第id集
sid:季节ID

一些问题: 谁是SNL出现的前20名演员? 最常使用的字符? 印象最频繁? 哪些角色是由多个演员扮演的?

我尝试了这个,但人数太多了,我想限制为20个人。或者,如果您有其他可视化建议,请尝试。

plt.style.use('seaborn-whitegrid')
plt.figure(figsize=(5,5)) 
sns.countplot(y="aid", data=appearances);

一些如何回答其中一些问题的示例情节太神奇了!

1 个答案:

答案 0 :(得分:2)

您的问题很广泛,但总的来说,对于每个系列,您都可以这样做:

获取特定列中每个唯一元素的计数,仅获取计数最高的20个元素:

top20aid=appearances.groupby(['aid'],sort=False)['aid'].count().sort_values().tail(20)
    bot20aid=appearances.groupby(['aid'],sort=False)['aid'].count().sort_values().head(20)

NB:sort_values默认情况下按升序排列。因此,为了找到计数最高的值,我们使用tail()。您可以使用以下.sort_values(ascending=False)以降序排列。在这种情况下,您可以使用.head()选择计数最高的元素。例如

top20aid=appearances.groupby(['aid'],sort=False)['aid'].count().sort_values(ascending=False).head(20)
bot20aid=appearances.groupby(['aid'],sort=False)['aid'].count().sort_values(ascending=False).tail(20)

然后只需将结果绘制在barplot

sns.barplot(top20aid.values,top20aid.index)