2017-01-07 1 views
6

Je suis en train d'utiliser un objet matplotlib.colormap conjointement avec la fonction pandas.plot:utilisant matplotlib avec colormap pandas géants dataframe.plot fonction

import pandas as pd 
import matplotlib.pyplot as plt 
import matplotlib.cm as cm 

df = pd.DataFrame({'days':[172, 200, 400, 600]}) 
cmap = cm.get_cmap('RdYlGn') 
df['days'].plot(kind='barh', colormap=cmap) 
plt.show() 

Je sais que je suis censé dire en quelque sorte le colormap la plage de valeurs qu'il est alimenté, mais je ne peux pas comprendre comment faire cela en utilisant la fonction pandas .plot() car ce plot() n'accepte pas les paramètres vmin/vmax par exemple.

Répondre

6

Pandas applique une palette de couleurs pour chaque ligne, ce qui signifie que vous obtenez la même couleur pour la trame de données à une colonne.

Appliquer des couleurs différentes pour chaque ligne de votre cadre de données que vous devez générer une liste de couleurs de la palette de couleurs choisie:

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

df = pd.DataFrame({'days':[172, 200, 400, 600]}) 
colors = cm.RdYlGn(np.linspace(0,1,len(df))) 
df['days'].plot(kind='barh', color=colors) 
plt.show() 

enter image description here

Une autre méthode consiste à utiliser matplotlib directement.

+0

Merci, ça m'a aidé! J'ai fini par utiliser colors = cm.RdYlGn (np.logspace (0,1, len (df)) * df ['jours']. Values ​​/ df ['jours']. Max()) –