如何根据分类数据绘制带有 y 轴值的水平条

How to plot a Horizontal bar with y-axis value from categorical data

组织是索引,我需要显示一个水平条形图,显示每个组织进行的实验尝试的总数,最多的在顶部,最少的在底部。

数据框如下: 组织日期时间尝试 一个....失败 b .... 成功 b .... 失败 一个....部分成功 成功 b ....部分成功

我认为尝试是分类数据并且它具有一些 count_values() 功能但是 就是不知道怎么编码?

让我们假设这个输入:

np.random.seed(0)
df = pd.DataFrame({'company': np.random.choice(['A', 'B', 'C', 'D'], 50),
                   'Location': 'non-relevant',
                   'Outcome': np.random.choice(['Success', 'Failure'], 50),
                  }).set_index('company')
df.head()
             Location  Outcome
company                       
A        non-relevant  Success
D        non-relevant  Failure
B        non-relevant  Failure
A        non-relevant  Failure
D        non-relevant  Failure
...

计算每组的计数并排序:

>>> df2 = df.groupby('company')['Outcome'].count().sort_values()
>>> df2
company
C     8
A    12
B    12
D    18
Name: Outcome, dtype: int64

剧情:

df2.plot.barh()

以及如何使用 failure/successes 进行计算:

df2 = df.groupby('company')['Outcome'].value_counts().unstack('Outcome')
df2 = df2.loc[df2.sum(axis=1).sort_values().index]
df2.plot.barh(stacked='True')