用x而不是1绘制一个包含所有1和0的数据框,并为0绘制空白

时间:2019-05-10 18:16:50

标签: python pandas matplotlib

我有一个熊猫数据框,看起来像:

    0  1  2  3  4 
0   1  1  1  0  1
1   1  0  1  1  1
2   1  0  0  1  0
3   1  1  1  0  0
4   0  1  0  0  0

并且我想创建一个如下所示的数据图(也许使用matplotlib):

x  x  x     x
x     x  x  x
x        x  
x  x  x  
   x  

有人知道这样做的方法吗?该图不需要由matplotlib生成

2 个答案:

答案 0 :(得分:1)

import matplotlib.pyplot as plt
import numpy as np

a = np.array([[1,1,1],[1,0,1],[0,1,0]])
print(a)
af = np.flipud(a) ### flip upside down, get the right coordinates in the scatter plot
args = np.argwhere(af) ### find the args where we do not have zeros
plt.figure(figsize=(3,3))
plt.scatter(args.T[1,:],args.T[0,:], marker="x"); #plot!

enter image description here

答案 1 :(得分:0)

这可能会让您走上正确的轨道。

import matplotlib.pyplot as plt
points = []
for index, row in df.iterrows():
    for i,x in enumerate(row):
        if x==1:
            points.append([index,i])
df_plt = pd.DataFrame(points)
plt.scatter(df_plt[0],df_plt[1])
plt.show()