J'ai dataframe total_year qui contient trois colonnes (année, action, comédie).
total_year
je veux tracer la colonne de l'année sur l'axe X et (action et comédie) sur l'axe Y.
Comment je peux tracer deux colonnes (aciton et comédie) sur l'axe Y. Voici mon code. il trace seulement 1 colonne sur l'axe Y.
total_year[-15:].plot(x='year', y='action' ,figsize=(10,5), grid=True )
Pandas.DataFrame.plot()
par défaut utilise l'index pour tracer l'axe X
, toutes les autres colonnes numériques seront utilisées comme valeurs Y
.
Donc, définir la colonne year
comme index fera l'affaire:
total_year.set_index('year').plot(figsize=(10,5), grid=True)
Au lieu d'un seul nom de colonne, vous pouvez fournir plusieurs colonnes à tracer à l'argument y
de pandas fonction de traçage. Celles-ci doivent être spécifiées sous forme de liste.
df.plot(x="year", y=["action", "comedy"])
Exemple complet:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({"year": [1914,1915,1916,1919,1920],
"action" : [2.6,3.4,3.25,2.8,1.75],
"comedy" : [2.5,2.9,3.0,3.3,3.4] })
df.plot(x="year", y=["action", "comedy"])
plt.show()
Toutes les variables indépendantes/caractéristiques peuvent être tracées avec une variable dépendante (résultat-Y) en utilisant la boucle et le code mentionnés ci-dessous en fonction du type de variable caractéristique, qu'il s'agisse de l'objet/int64/float64.
Dans ce cas, Feature_col_X1 (contient la liste des fonctionnalités) et Target_col_Y1 est la cible, je passe ceci dans une fonction définie et je peux obtenir tout le tracé pour 20 fonctionnalités à la sortie 1
def plotforallvariables(Feature_col_X1,Target_col_Y1):
for i in range(len(Feature_col_X1)):
idx=Feature_col_X1[i]
try:
if data[idx].dtype =='O':
#print('categorical')
#%matplotlib inline
#print(idx,'in X axis and also',Target_col_Y1 ,'in Y axis')
pd.crosstab(data[idx],data[Target_col_Y1]).plot(kind='bar')
#x=r'idx,'in X axis and also',Target_col_Y1 ,'in Y axis'
#plt.title('x')
#print(data[idx])
#print(data[Target_col_Y1])
#plt.xlabel(data[idx])
#plt.ylabel(data[Target_col_Y1])
Elif data[idx].dtype =='int64':
#ax = plt.gca()
#data.plot(kind='line',x=data[idx],y=data[Target_col_Y1])
pd.crosstab(data[idx],data[Target_col_Y1]).plot(kind='line')
#data.plot.scatter(x=data[idx],y=data[Target_col_Y1])
#plt.show()
#print('integer')
Elif data[idx].dtype =='float64':
#print('float')
pd.crosstab(data[idx],data[Target_col_Y1]).plot(kind='line')
#data.plot(kind='line',x=data[idx],y=data[Target_col_Y1])
except (ValueError,KeyError):
print('skip error')
plotforallvariables(Feature_col_X,Target_col_Y)