在seaborn中用科学记谱法制作colorbar

use*_*827 3 python matplotlib pandas seaborn

我正在seaborn中绘制以下热图.从foll中读取数据帧.csv文件:https://www.dropbox.com/s/mb3wc8mmis0m7g6/df_trans.csv? dl = 0

ax = sns.heatmap(df, linewidths=.1, linecolor='gray', cmap=sns.cubehelix_palette(light=1, as_cmap=True))
locs, labels = plt.xticks()
plt.setp(labels, rotation=0)
locs, labels = plt.yticks()
plt.setp(labels, rotation=0)
Run Code Online (Sandbox Code Playgroud)

如何修改颜色条数字,使它们160000显示为1.6,颜色条顶部为10 ^ 5.我知道在matplotlib中这样做很热,但在seaborn中没有:

import matplotlib.ticker as tkr
formatter = tkr.ScalarFormatter(useMathText=True)
formatter.set_scientific(True)
ax.yaxis.set_major_formatter(formatter)
Run Code Online (Sandbox Code Playgroud)

mwa*_*kom 8

将您的formatter对象传递到cbar_kws:

import numpy as np
import seaborn as sns
import matplotlib.ticker as tkr

formatter = tkr.ScalarFormatter(useMathText=True)
formatter.set_scientific(True)
formatter.set_powerlimits((-2, 2))

x = np.exp(np.random.uniform(size=(10, 10)) * 10)
sns.heatmap(x, cbar_kws={"format": formatter})
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述