मेरे पास एन कॉलम और पंक्तियों की एक्स संख्या की डेटा फ़ाइल है। मैं डेटा के हर दूसरे कॉलम के खिलाफ हर कॉलम को कैसे प्लॉट कर सकता हूं?

data=[]
inFile = open('random.data','r')
    for line in inFile.readlines():
        line = line.split()
        b = np.array([line],dtype=float)
        for i in range(len(b)):
            c=(b[i])
            data.append(c)
inFile.close()

यह एक सरणी उत्पन्न करता है जहां मैं प्रत्येक कॉलम को इस तरह अनुक्रमित कर सकता हूं:

datax = ([i[0] for i in data])
datay = ([i[1] for i in data])
dataz = ([i[2] for i in data])
dataa = ([i[3] for i in data])

और फिर एक दूसरे के खिलाफ साजिश:

plt.plot(datax,datay,dataz,dataa,'o')

लूप के लिए मैं इसे कैसे कर सकता हूं ताकि यह कॉलम की संख्या के लिए काम करे?

1
Tom Richmond 11 अक्टूबर 2018, 20:49

1 उत्तर

सबसे बढ़िया उत्तर

ऊपर दिए गए आपके कोड में data मानते हुए पांडा डीएफ है, नीचे दिया गया कोड काम करेगा:

import matplotlib.pyplot as plt
df_data = data
for i in range(len(df_data.columns)):
    for j in range(len(df_data.columns)):
        x = df_data.iloc[:,df_data.index[i]]
        y=  df_data.iloc[:,df_data.index[j]]
        plt.figure()
        plt.plot(x[i],y[j])

अपने डेटा को df में पढ़ने के लिए, नीचे दिया गया कोड है:

data = pd.read_csv('random.data', sep=" ", header=None) #sep depends on your file, it can be space, semicolon or anything.
data.columns = ["a", "b","c", ... "etc.", ...] # Put names of your column in place of a,b,c etc.
0
Rahul Agarwal 12 अक्टूबर 2018, 08:52