Matplotlib中如何实现科学表示法的颜色条?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (28)

我正试图使用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()

当我这样做时,我得到以下图像:

怎么办?

提问于
用户回答回答于

你可以用colorbar:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as ticker

img = np.random.randn(300,300)
myplot = plt.imshow(img)

def fmt(x, pos):
    a, b = '{:.2e}'.format(x).split('e')
    b = int(b)
    return r'${} \times 10^{{{}}}$'.format(a, b)

plt.colorbar(myplot, format=ticker.FuncFormatter(fmt))
plt.show()

用户回答回答于

扫码关注云+社区