如何绘制 python 数据框中出现的位置

How to plot the position of occurrence in python data frame

例如我有一个如下所示的数据框:

   A  B  C
0  1  1  1
1  1  1  0
2  1  1  0
3  1  0  1
4  1  0  1
5  1  0  0
6  0  1  0
7  0  1  1
8  0  1  0
9  0  1  1

我如何绘制如下所示的图表,指示具有 1 的列 ABC 的索引位置?

顶部栏显示第 A 列,中间栏显示 B 列,底部栏显示 C 列。 x 轴是索引。对于每个条形,蓝色表示此列的此索引处有一个 1,灰色表示相反。

假设您的数据在 df 中,您可以在转置数据帧上调用 plt.imshow

import matplotlib.pyplot as plt
plt.imshow(df.T, cmap='Blues')

编辑:对于具有行 >> 列或列 >> 行的数据集,缩放比例可能会混乱。这可以通过更改图中的 aspect 来更改。我在这里使用 10,但您可能应该使用一些值(可能是 0.1 到 100)

plt.imshow(df.T, cmap='Blues')
plt.gca().set_aspect(10)