有条理地突出Python matplotlib中的数据

时间:2016-12-18 23:11:57

标签: python pandas matplotlib

我有条件地绘制pandas数据帧。

我们假设我们有一个4 * 4的数据框columns=['A', 'B', 'C', 'D']indexes=[0, 1, 2, 3]。我们假设我们做df.plot.bar()。对于每行中的数据,我想突出显示column C >= column A + column B中数据的条形图。对Column D中的数据执行相同操作。

最终结果应突出显示满足上述要求的条形为红色,其余为白色。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

df = pd.DataFrame([
        [1, 2, 4, 2],
        [4, 3, 5, 9],
        [3, 1, 0, 1],
        [2, 6, 9, 2]
    ], columns=list('ABCD'))

condAB = pd.DataFrame(False, df.index, ['A', 'B'])
condCD = df[['C', 'D']].ge(df[['A', 'B']].sum(1), 0)
cond = pd.concat([condAB, condCD], axis=1).stack().tolist()
colors = np.where(cond, 'red', 'white')

df.plot.bar(color=colors, legend=False)

enter image description here