[英]making colorbar with scientific notation in 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)
如何修改颜色条数字,使它们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)
通过cbar_kws
传递formatter
对象:
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})
使用seaborn,您可以在通过cbar_kws
参数创建热图时将格式化程序传递到cbar_kws
。
以seaborn文档为例......
import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
import matplotlib.ticker as tkr
formatter = tkr.ScalarFormatter(useMathText=True)
formatter.set_scientific(True)
uniform_data = np.random.rand(10, 12) * 100000000
ax = sns.heatmap(uniform_data,
cbar_kws={'format':formatter}
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.