シーボーンを使用して作成したヒートマップがあります
revels = rd.pivot("Flavour", "Packet number", "Contents")
ax = sns.heatmap(revels, annot=True, fmt="d", linewidths=0.4, cmap="YlOrRd")
plt.show()
ただし、私がやりたいことが2つあります。seabornのヘルプファイル( http://seaborn.pydata.org/generated/seaborn。 heatmap.html )
私がやりたいことは、フレーバーを違う順序で注文することです。オレンジ、タフィー、チョコ、モルト、レーズン、コーヒーとしてテキストファイルに入力された順序にもかかわらず、プロット時にこの方法は生成されません。 yticklabsを編集しようとしましたが、データを移動するのではなく、ラベルを編集するだけです。
助けてくれてありがとう
PSデータは次のようになります。
Packet number,Flavour,Contents
1,orange,4
2,orange,3
3,orange,2
...
1,toffee,4
2,toffee,3
3,toffee,3
...
etc.
最初の質問については、データでソートを実行する必要があります。最初の行でデータフレームが作成され、sortlevelメソッドを使用してソートできます。
データフレームを作成します。
revels = rd.pivot("Flavour", "Packet number", "Contents")
インデックスとしてフレーバーを使用しているため、ヒートマップに追加する前にsortlevelメソッドを使用します。
revels.sortlevel(level=0, ascending=True, inplace=True)
これにより、ヒートマップでのデータの順序が変更されます。
これは明らかに昇順/降順の並べ替えを提供しますが、カスタムの並べ替え順序が必要な場合は、このリンクを試してください: カスタムの並べ替えpandas dataframe 。
カスタムソートの例
revels.index = pd.CategoricalIndex(revels.index, categories= ["orange", "toffee", "chocolate", "malteser", "raisin", "coffee"])
revels.sortlevel(level=0, inplace=True)
上記の例は機能しますが、sortlevel
を_sort_index
_に置き換える必要があります
つまり、revels.sortlevel(level=0, ascending=True, inplace=True)
はrevels.sort_index(axis=0, ascending=True, inplace=True)
になります。