2014-09-09 20 views
5

ho un pd.DataFrame come questo:Come utilizzare mappe di colori per trame di colori di panda DataFrames

ColumnName 
1 
1 
2 
3 
1 
2 
3 
1 
2 
2 

posso tracciare con df['ColumnName'].plot(style='o')

Come posso definire colori diversi per i diversi valori nella colonna (ad esempio rosso per il valore 1, verde per 2, arancione per 3). So che ha a che fare con colormap, ma come posso usarlo?

Una soluzione è costruire un nuovo DataFrame con le colonne di ogni valore. Ma questi valori sono ordinati e voglio avere esattamente questa sequenza appena colorata nei diversi colori.

risposta

9

per tracciare la prima colonna dal dataframe, provare qualcosa di simile:

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

df = pd.DataFrame(np.random.randint(20, size=20)) 
cmap = cm.get_cmap('Spectral') # Colour map (there are many others) 

fig, ax = plt.subplots(1) 
# Now here's the plot. range(len(df)) just makes the x values 1, 2, 3... 
# df[0] is then the y values. c sets the colours (same as y values in this 
# case). s is the marker size. 
ax.scatter(range(len(df)), df[0], c=df[0], s=120, cmap=cmap, edgecolor='None') 
plt.show() 

che si traduce in: Plot output

+0

esatta quello che voglio, grazie – Guforu

Problemi correlati