我有一个包含一些列的数据框,我想绘制每列值的频率
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()
但是,我的结果如下:
有没有人可以帮助我?
答案 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()
答案 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()