matplotlib 彩条科学计数法偏移量

z9smfwbn  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(152)

当绘制一个颜色条时,顶部的标签(我猜这将被称为偏移量)是错误的。这在过去是不会发生的,我有一些旧代码的例子,它在颜色条上方居中,但我不知道发生了什么变化。
范例:

import numpy as np
import matplotlib.pyplot as plt

z = np.random.random((10,10))

fig, ax = plt.subplots()
im = ax.imshow(z)
cb = fig.colorbar(im)

cb.formatter.set_powerlimits((0, 0))
cb.update_ticks()

plt.show()

给出了:

作为一个例子,它曾经看起来(从我的一个旧论文,所以不同的数据等)。

使用最新的anaconda python 2.7,在MacOSX上,mpl版本1.5.0
编辑:我还应该注意,tight_layout()也没有改善这一点,尽管它在工作示例中缺失。

wf82jlnq

wf82jlnq1#

您可以简单地使用set_offset_position作为颜色条的y轴。比较:

fig, ax = plt.subplots()                
im = ax.imshow(np.random.random((10,10)))                    
cb = fig.colorbar(im)     
cb.formatter.set_powerlimits((0, 0))
cb.ax.yaxis.set_offset_position('right')                         
cb.update_ticks()
plt.show()

fig, ax = plt.subplots()
im = ax.imshow(np.random.random((10,10)))
cb = fig.colorbar(im)
cb.formatter.set_powerlimits((0, 0))
cb.ax.yaxis.set_offset_position('left')
cb.update_ticks()
plt.show()

总而言之,它看起来就像默认值从右到左改变了。

rn0zuynd

rn0zuynd2#

使用上面的代码和matplotlib版本1.4.3,我得到了以下图

因此,这可能是一个版本问题。

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

z = np.random.random((10,10))

fig, ax = plt.subplots()
im = ax.imshow(z)
cb = fig.colorbar(im)
cb.ax.text(-0.25, 1, r'$\times$10$^{-1}$', va='bottom', ha='left')

plt.show()

上面的代码给出了下面的图

注意,我在字符串的开头使用了r,这样$\times$就产生了正确的符号。

相关问题