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

问题描述 投票:-1回答:1

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

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

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

有谁知道怎么做?

python pandas matplotlib
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.