如何根据分类数据绘制带有 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')
组织是索引,我需要显示一个水平条形图,显示每个组织进行的实验尝试的总数,最多的在顶部,最少的在底部。
数据框如下: 组织日期时间尝试 一个....失败 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')