用countplot()标准化

时间:2018-02-12 23:18:54

标签: python matplotlib seaborn

下面的代码显示了我的列表中包含值数字的图表:

import seaborn as sns
sns.countplot([0,1,2,3,1,2,1,3,2,1,2,1,3])
plt.show()

我想用百分比代替相同的情节。 seaborn或matplotlib有一个简单的选择吗?

1 个答案:

答案 0 :(得分:3)

如图here所示,使用seaborn barplot可以很容易地实现显示标准化值的计数图。

import matplotlib.pyplot as plt
import seaborn as sns

x = [0,1,2,3,1,2,1,3,2,1,2,1,3]
percentage = lambda i: len(i) / float(len(x)) * 100

ax = sns.barplot(x=x, y=x,  estimator=percentage)
ax.set(ylabel="Percent")
plt.show()

enter image description here

或者,使用熊猫,

import matplotlib.pyplot as plt
import pandas as pd

x = [0,1,2,3,1,2,1,3,2,1,2,1,3]

ax = (pd.Series(x).value_counts(normalize=True, sort=False)*100).plot.bar()
ax.set(ylabel="Percent")
plt.show()

enter image description here