首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Seaborn:反转cbar

Seaborn:反转cbar
EN

Stack Overflow用户
提问于 2021-08-01 18:34:12
回答 1查看 35关注 0票数 0

我有一个Dataframe,它表示一个二进制矩阵(0和1),在行和列上都有标签。我使用以下代码打印矩阵,为每个标签分配一种颜色:

代码语言:javascript
复制
import seaborn as sns
import matplotlib.pylab as plt
import matplotlib as mpl
import pandas as pd
import numpy as np
N = 100

M = 200
p = 0.8
df = pd.DataFrame(np.random.choice([0,1], (M,N), p=(p, 1-p)),
                  columns=sorted((list(range(10))*N)[0:N]),
                  index=sorted((list(range(10))*N)[0:M]))


cmap = mpl.colors.ListedColormap([(.8, .8, .8, 1.0)] + [plt.cm.jet(i) for i in range(plt.cm.jet.N-1)])

ax = sns.heatmap(df.apply(lambda s: (s.name==s.index)*s*(s.index+1)), mask=df.eq(0), cmap=cmap )

我的问题是,cbar中显示的颜色与图中显示的颜色顺序相反(标签也是如此)。如何反转cbar中的颜色和标签?我试过了:

代码语言:javascript
复制
ax.invert_yaxis()

但它也改变了剧情的结构。

有解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-01 22:16:47

您可以通过ax.collections[0].colorbar获取colorbar,然后在其ax上调用invert_yaxis()

代码语言:javascript
复制
ax.collections[0].colorbar.ax.invert_yaxis()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68613305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档