2014-06-19 21 views
5

Bir DF kullanılarak matplotlib dışına saçılım yapıyorum.farklı bir sütunda ayrı değişkene göre matplotlib dağılım arsa işaretleyici veya renk yapmak için bir yolu var mı?

plt.scatter(zzz['HFmV'], zzz['LFmV'], label = dut_groups[0], color = 'r') 
plt.scatter(qqq['HFmV'], qqq['LFmV'], label = dut_groups[1], color = 'b') 
plt.legend() 
plt.show() 

Bu bana istediğiniz renk bağımlılığı verir ama gerçekten ideal bir ne olurdu ben sadece pandalar alabilir: her veri seti için farklı renkler elde etmek için, ben plt.scatter için iki ayrı çağrı yapmaya çalışıyorum df.Group, işaretleyici = df.Head)

Görünüşe yoktur =

df.plot (tür = dağılım (x, y, renk gibi bir şey tarafından aynı arsa üzerinde birkaç veri setleri ile bana scatterplot vermek böyle bir hayvan (en azından ben bulabildiğim). Yani, zihnimde sonraki en iyi şey plt.scatter ben renk veya işaretleyici değişir yapabilir bir döngüye çağrıları koymak olurdu satırlardan birine göre (x veya y değil, başka satır). Kullanmak istediğim satır sürekli değişken olsaydı ben renk haritası varmış gibi görünüyor, ama benim durumumda bunun için dava açmaya gerek satır bir dize (değişkenin kategorik tip, sayı değil) 'dir.

Herhangi bir yardım çok takdir. neredeyse çalışacaktır yapıyoruz, ancak color renk vektör, değişkenlerin sadece bir vektör geçmek zorunda Ne

cevap

10

. Yani yapabilirdi:

color = df.Group.map({dut_groups[0]: "r", dut_groups[1]: "b"}) 
plt.scatter(x, y, color=color) 

aynı işaretleyici tarzı için de geçerli

o işaretleyici yapmaz rağmen Ayrıca, ( here anlatıldığı gibi) beklediğiniz renk eşleme gibi yapmak seaborn kullanabilirsiniz

stil haritalama:

import seaborn as sns 
import pandas as pd 
from numpy.random import randn 

data = pd.DataFrame(dict(x=randn(40), y=randn(40), g=["a", "b"] * 20)) 
sns.lmplot("x", "y", hue="g", data=data, fit_reg=False) 

enter image description here