python-使用科学符号表示seaborn

python-使用科学符号表示seaborn,python,seaborn,colorbar,scientific-notation,Python,Seaborn,Colorbar,Scientific Notation,我试图用python中的seaborn创建kde绘图,但是当设置colorbar值以科学记数法显示时,我看不出有什么不同 请参阅-以了解一个高度相关的主题 有关seaborn的kde类的文档,请参阅 是不是有什么原因导致kde类无法使用这种格式,还是我在格式设置上犯了一个愚蠢的错误 import numpy as np import seaborn as sns import matplotlib.ticker as tkr a = np.random.normal(0,1,size=100)

我试图用python中的seaborn创建kde绘图,但是当设置colorbar值以科学记数法显示时,我看不出有什么不同

请参阅-以了解一个高度相关的主题

有关seaborn的kde类的文档,请参阅

是不是有什么原因导致kde类无法使用这种格式,还是我在格式设置上犯了一个愚蠢的错误

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

a = np.random.normal(0,1,size=100)
b = np.random.normal(0,1,size=100)

fig, ax = plt.figure(), plt.subplot(111)
formatter = tkr.ScalarFormatter(useMathText=True)
formatter.set_scientific(True)
sns.kdeplot(a,b, n_levels=10, shade=True, cmap='Blues',
            cbar=True, cbar_kws={'format':formatter})
结果是:

在这里,我希望色条显示一个索引符号,就像这个问题描述中的第一个链接一样

非常感谢

.set\u scientific(True)
适用于偏移标签。这里没有任何偏移量,所以它似乎被忽略了。不幸的是,没有一种规范的方法可以用科学符号来格式化标签本身

一种方法如所示

在此应用它:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker

a = np.random.normal(0,1,size=100)
b = np.random.normal(0,1,size=100)

fig, ax = plt.figure(), plt.subplot(111)

f = mticker.ScalarFormatter(useOffset=False, useMathText=True)
g = lambda x,pos : "${}$".format(f._formatSciNotation('%1.10e' % x))

sns.kdeplot(a,b, n_levels=10, shade=True, cmap='Blues',
            cbar=True, cbar_kws={'format': mticker.FuncFormatter(g)})

plt.show()

谢谢,如果无法按规范重新格式化,这似乎是最好的方法。遗憾的是,它没有作为功能包含在此类中,但您可以做什么:“)“您可以做什么?”-Matplotlib是一个开源社区驱动的项目。每个人都可以做出贡献,无论是通过公开关于bug或缺少特性的问题,还是实现新代码。