mys*_*ier 11 python matplotlib heatmap pandas seaborn
所以我有一个使用 seaborn 创建的热图
revels = rd.pivot("Flavour", "Packet number", "Contents")
ax = sns.heatmap(revels, annot=True, fmt="d", linewidths=0.4, cmap="YlOrRd")
plt.show()
Run Code Online (Sandbox Code Playgroud)
然而,我想做两件事,尽管查阅了 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.
Run Code Online (Sandbox Code Playgroud)
And*_*w L 12
至于第一个问题,您需要对数据进行排序。您的第一行创建了一个数据框,然后您可以使用 sortlevel 方法进行排序。
创建数据框:
revels = rd.pivot("Flavour", "Packet number", "Contents")
Run Code Online (Sandbox Code Playgroud)
因为您使用 Flavor 作为索引,所以在添加到热图之前使用 sortlevel 方法:
revels.sort_index(level=0, ascending=True, inplace=True)
Run Code Online (Sandbox Code Playgroud)
这将更改热图中数据的顺序。
这显然提供了升序/降序排序,但如果您需要自定义排序顺序,请尝试此链接: 自定义熊猫数据框中的排序。
自定义排序示例
revels.index = pd.CategoricalIndex(revels.index, categories= ["orange", "toffee", "chocolate", "malteser", "raisin", "coffee"])
revels.sort_index(level=0, inplace=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20670 次 |
| 最近记录: |