2016-11-18 7 views
1

カラーパレットを設定して、いつでもグラフの色とバーの色が一致しているかどうかを確認する方法がありますx軸。私は、これはオンラインのどこかにあると確信しているが、例えば運Seaborn/Python/Matplotlibの定期的なカスタムカラーパレット

で時間かけて探していましSeaborn

を使用しています

、私が望む:

「木曜日」私はこれを使用することになります常に紫にマップするために、「金曜日」は常に赤にマッピングする 、 「土曜日」は常に緑にマッピングするために、 「日曜日は」常に青にマッピングするために、

: - 異なる基準を使用して異なるチャートの様々な、時にはすべての4日間は、あなたが以下の例を見れば、色は細かい

例1の作業時には彼らは

ではありません、含まれています

%matplotlib inline 
import pandas as pd 
import seaborn as sns 
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata- book/master/ch08/tips.csv", sep=',') 
df=df[(df['sex']=='Female')&(df['smoker']=='No')&(df['time']=='Dinner')&(df['size']==2)] 

Looks as follows

しかし、日曜日のうちフィルタリングに基づいて実施例2:

%matplotlib inline 
import pandas as pd 
import seaborn as sns 
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata- book/master/ch08/tips.csv", sep=',') 
df=df[(df['sex']=='Female')&(df['smoker']=='No')&(df['time']=='Dinner')&(df['size']==2)] 
df=df[df['day']!='Sun'] 
まあ

Looks as Follows

、色のすべては、私が値(すなわちのマスターリストにマッピングされるカスタムパレットを設定するにはどうすればよい

をシフトする方法に気づきます月曜日=赤、火曜日=緑、水曜日=青、など)。動的に素晴らしいことだが、静的リストは、私は私のような何かを行うことができます知っても

okです:パレットを設定し、各バーにそれを適用されますが、私はより多くのことを期待していた

pal = dict(Sat="k", Thur="b", Fri="y", Sun="#9b59b6") 

x=sns.barplot(x="day",y="tip",data=df, palette=pal) 

(ETC、第2火曜日、すなわち最初の値が月曜日である)

sns.color_palette("Set1", n_colors=30, desat=.5) 

ような、何かを既存のパレットを使用し、パレットを反復値に各色を割り当てることができる

助けていただければ幸いです!

ありがとうございました!

ジェフ

答えて

2

ちょうどあなたが言うように実行します。「パレットを反復処理し、値にそれぞれの色を割り当てます」。ここではzipを使用しますが、forループまたはリスト/ディクテーションの理解も有効です。

df = pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',') 
df1 = df[(df['sex']=='Female')&(df['smoker']=='No')&(df['time']=='Dinner')&(df['size']==2)] 
df2 = df1[df1['day']!='Sun'] 

days = df['day'].unique() 
pal = dict(zip(days, sns.color_palette("Set1", n_colors=len(days)))) 

sns.barplot(x="day",y="tip",data=df1, palette=pal) 

df1

sns.barplot(x="day",y="tip",data=df2, palette=pal) 

df2

+0

素晴らしい...ありがとう! –

関連する問題