我正在尝试在 python 中使用seaborn 获取热图。不幸的是,即使数字非常大,它也没有使用科学记数法。我想知道是否有任何简单的方法可以转换为科学记数法或任何其他合理的格式。这是显示问题的一段代码:
import seaborn as sns
import numpy as np
C_vals = np.logspace(3, 10, 8)
g_vals = np.logspace(-6, 2, 9)
score = np.random.rand(len(g_vals), len(C_vals))
sns.heatmap(score, xticklabels=C_vals, yticklabels=g_vals)
结果图如下
热图允许创建从输入到xticklabels
/yticklabels
命令。然后将它们沿着轴放置,因此没有数字格式可以更改它们的外观。
一个选项是在将标签提供给热图之前对其进行格式化。为此,matplotlibScalarFormatter
可以被(错误)使用,这允许从浮点数自动生成 MathText 字符串。以下是一个例子:
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import seaborn as sns
import numpy as np
C_vals = np.logspace(3, 10, 8)
g_vals = np.logspace(-6, 2, 9)
score = np.random.rand(len(g_vals),len(C_vals))
tick = ticker.ScalarFormatter(useOffset=False, useMathText=True)
tick.set_powerlimits((0,0))
tc = [u"${}$".format(tick.format_data(x)) for x in C_vals]
tg = [u"${}$".format(tick.format_data(x)) for x in g_vals]
sns.heatmap(score, xticklabels=tc, yticklabels=tg)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)