Python matplotlib中的科学符号colorbar

Python matplotlib中的科学符号colorbar,python,matplotlib,scientific-notation,colorbar,Python,Matplotlib,Scientific Notation,Colorbar,我正在尝试使用matplotlib为图像添加颜色条。当我试图强迫标签用科学符号书写时,问题就来了。如何在颜色栏的刻度中强制使用科学符号(即1x10^0、2x10^0、…、1x10^2等) 例如,让我们使用颜色栏创建和打印图像: import matplotlib as plot import numpy as np img = np.random.randn(300,300) myplot = plt.imshow(img) plt.colorbar(myplot) plt.show() 当

我正在尝试使用matplotlib为图像添加颜色条。当我试图强迫标签用科学符号书写时,问题就来了。如何在颜色栏的刻度中强制使用科学符号(即1x10^0、2x10^0、…、1x10^2等)

例如,让我们使用颜色栏创建和打印图像:

import matplotlib as plot
import numpy as np

img = np.random.randn(300,300)
myplot = plt.imshow(img)
plt.colorbar(myplot)
plt.show()
当我这样做时,我得到以下图像:

然而,我想看看科学符号中的标签。。。是否有任何一行命令可以执行此操作?否则,有什么提示吗?谢谢

您可以使用:


您可以按如下方式指定颜色栏标记的格式:

pl.colorbar(myplot,格式='%.0e')

有一种更直接(但可定制性较差)的方法,可以在
色条
中获取科学符号,而无需
%.0e
格式

创建您的
颜色栏

cbar = plt.colorbar()
并调用格式化程序:

cbar.formatter.set_powerlimits((0, 0))
这将使
色条
使用科学记数法。请参见下图示例,了解
颜色栏的外观


可以找到此函数的文档。

谢谢,但我希望看到10^1 10^2等,而不是e+01、e+02。有可能吗?我对你的代码做了一点修改,以显示使用乳胶的科学符号。非常感谢你!您的解决方案非常有用,而且确实非常有趣。@AgapeGal'lo:您可以使用类似
.10f
的方法强制使用十进制表示法,这将导致代码外观。另一种可能是使用,导致代码。您可以设置最小值和最大值。颜色栏将相应地调整。要获得
(-4--->深蓝色和+4深红色)
您可以将
cmap=plt.get\u cmap('jet')
参数传递给
imshow
(再次查看链接以获取示例)。但是请注意,虽然
jet
颜色贴图看起来很漂亮,但这是因为它可以在不应该的情况下掩盖或增强颜色方案的变化。这就是为什么viridis是新的默认设置。可以找到彩色地图选项库。谢谢,但我希望看到10^1 10^2等,而不是e+01、e+02。有可能吗?您有关于cbar.formatter.set\u powerlimits的文档链接吗?我找不到它。我只是想看看(0,0)means@pwprnt文档隐藏在这一页上:突出的信息是:“一个元组(min_exp,max_exp),包含决定切换阈值的10次幂
cbar.formatter.set_powerlimits((0, 0))