2014-09-09 21 views
5

Tôi có một pd.DataFrame như thế này một:Làm thế nào để sử dụng colormaps để lô màu sắc của gấu trúc DataFrames

ColumnName 
1 
1 
2 
3 
1 
2 
3 
1 
2 
2 

tôi có thể vẽ nó với df['ColumnName'].plot(style='o')

Làm thế nào tôi có thể xác định màu sắc khác nhau cho các giá trị khác nhau trong cột (ví dụ: màu đỏ cho giá trị 1, màu xanh lục cho 2, màu cam cho 3). Tôi biết nó phải làm với colormap, nhưng làm thế nào tôi có thể sử dụng nó?

Giải pháp là xây dựng DataFrame mới với các cột của mọi giá trị. Nhưng những giá trị này được sắp xếp và tôi muốn có chính xác trình tự này chỉ được tô màu trong các màu khác nhau.

Trả lời

9

Để vẽ cột đầu tiên từ dataframe của bạn, hãy thử một cái gì đó như thế này:

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() 

mà kết quả trong: Plot output

+0

chính xác những gì tôi muốn, cảm ơn bạn – Guforu

Các vấn đề liên quan