【发布时间】:2018-03-11 21:57:48
【问题描述】:
我有两个具有不同长度和数量的变量的系列,并且想要绘制每个变量(名称)在每个系列中出现的频率。 我想要系列 1 的灰色计数图和系列 2 的红色计数图,并且我希望它们彼此重叠显示。 然而,由于系列 2 缺少“Nancy”,因此它也减少了系列 1 的“Nancy”计数。 我如何获得两个系列的完整覆盖,包括南希的酒吧?
import matplotlib.pyplot as plt
import seaborn as sns
ser1 = pd.Series( ['tom','tom','bob','bob','nancy'])
ser2 = pd.Series( ['tom','bob'])
fig = plt.figure()
sns.countplot(x=ser1, color='grey')
sns.countplot(x=ser2, color='red')
plt.show()
编辑: 更改为以下将再次导致问题。如何让 Matplotlib 识别这两个系列具有相同的分类值?
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
ser1 = pd.Series( ['tom','tom','bob','bob','nancy','zulu'])
ser2 = pd.Series( ['tom','nancy'])
ser1 = ser1.astype('category')
ser2 = ser2.astype('category')
fig = plt.figure()
ax = sns.countplot(x=ser2, color='red', zorder=2)
sns.countplot(x=ser1, color='grey')
plt.show()
【问题讨论】:
标签: python matplotlib seaborn