如何通过索引在多列中绘制带有散点图的数据框?

时间:2019-10-30 10:15:13

标签: python dataframe matplotlib scatter

我有一个包含一些列的数据框,我想绘制每列值的频率

df = pd.DataFrame({'A': ['0','0','0','2','0','0','0','3'],
               'B': ['0','0','0','4','3','0','0','4'],
               'C': ['1','1','2','8','9','6','1','10']})
df

现在,我有解决方案的代码

plt.figure(figsize=(10, 5), dpi=80)
plt.plot(df.A,'rx', df.B, 'g^--', df.C, 'bs-')
plt.show()

但是,我的结果如下: enter image description here

有没有人可以帮助我?

2 个答案:

答案 0 :(得分:0)

尝试这样。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

data = [[0,0,0,2,0,0,0,3],
       [0,0,0,4,3,0,0,4],
       [1,1,2,8,9,6,1,10]]
np_data = np.array(data)
indexes = [1,2,3,4,5,6,7,8]
columns = list('ABC')
df = pd.DataFrame(np_data.transpose(), index=indexes, columns=columns)
print(df)
df[columns] = df[columns].apply(pd.to_numeric, errors='coerce')
plt.figure()
df.plot()
plt.savefig("image.png")
plt.show()

enter image description here

答案 1 :(得分:0)

我一直在尝试绘制数据帧,因为像波纹管一样,我正在编写简单的代码,并且得到了我想做的图片。但是我需要一些建议使for循环或boolean应用于大数据。

df1 = pd.DataFrame({'A': ['0','0','0','2','0','0','0','3','0'],
               'B': ['0','0','0','4','3','0','0','4','2'],
               'C': ['1','1','2','8','9','6','1','10','3']})
df1

plt.figure(figsize=(5, 6), dpi=80)
plt.plot(df1.loc[0,:],'ro', df1.loc[1,:], 'ro', df1.loc[2,:], 'ro', df1.loc[3,:], 
    'bs-', df1.loc[4,:], 'g^--', df1.loc[8,:], 'g^--')
plt.plot(df1.loc[5,:], 'ro', df1.loc[6,:], 'ro', df1.loc[7,:], 'bs-')
plt.grid()
plt.show()

enter image description here