2016-06-15 17 views
0

私は次のようなDataFrameを持っており、x軸が「週」、y軸が「Slot Request」と色相は「Group」です。データフレームを1列にグループ化し、色相を別の列でグループ化する

私はプロットしたいデータを取得するには、私は上記のスニペットが"Slot Request", dtype = int64を返し

summed = full_df.groupby(["Group", "Cluster", "Week"])["Slot Request"].sum() 

を使用しています。ここから先に、私はちょっと固まっています。

私は上記の結果をプロットするのに成功しなかったので、それを.csvとしてエクスポートしてから再インポートしました(それをデータフレームに戻すために、ごめんなさい。)

私が思いつくことができる唯一の作業コードは以下のとおりですが、それは私が得る必要があるものではありません。 FacetGridを使用して運がない。

for i, group in summed.groupby("Cluster"): 
    plt.figure() 
    sns.pointplot(data = summed, x="Week", y="Slot Request", hue="Group", scale=0.2) 

答えて

2

このような何か試してみてください:

summed = full_df.groupby(["Group", "Cluster", "Week"])["Slot Request"].sum().reset_index() #reset_index turns this back into a normal dataframe 
g = sns.FacetGrid(summed, col="Group") #create a new grid for each "Group" 
g.map(sns.pointplot, 'Week', 'Slot Request') #map a pointplot to each group where X is Week and Y is slot request 
+0

このアドバイスをいただきありがとうございます。私はそれを少し修正し、新しい答えに加えましたが、x_axisと色の凡例に関するフィードバックをお待ちしております。ありがとう! –

0

をあなたのアイデアのために非常に多くの@Samありがとうございます。私はコメントに投稿したでしょうが、コードの書式設定は明確ではありませんでした。次を使用して

summed = full_df.groupby(["Group", "Cluster", "Week"])["Slot Request"].sum().reset_index() 
g = sns.FacetGrid(summed, row ="Cluster", hue = "Cluster", sharex = False) 
g.map(sns.pointplot, "Week", "Slot Request", "Group", scale=0.2, palette = sns.color_palette("muted")) 
g.set(xticks = np.arange(1, number_of_weeks+2,week_span)) 
g.set_xticklabels([w for w in range(1, number_of_weeks+2, week_span)]) 

私が取得するために管理: enter image description here

しかし、私はすべての3つのプロットのためのx_ticksとx_tick_labelsを設定するホットわからないんだけど、また追加する方法色の凡例(各色は異なる "グループ")です。助言がありますか?

関連する問題