在绘制颜色条时,顶部标签(我猜这可称为偏移)是错误居中的。这并没有发生,我有旧代码的示例,它位于颜色条上方,但我不知道发生了什么变化。
示例:
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()
给出这个:
作为它过去常见的一个例子(取自我的一篇旧论文,所以 不同的数据等。)
在MacOSX上使用最新的anaconda python 2.7,mpl版本1.5.0
编辑:我还应该注意,tight_layout()也没有改善这一点,尽管工作示例中缺少它。
答案 0 :(得分:5)
您只需将.com
用于颜色条的y轴即可。比较:
set_offset_position
与
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()
总而言之,它看起来似乎默认从右向左变化。
答案 1 :(得分:2)
使用上面的代码和matplotlib版本1.4.3我得到以下图表
所以这可能是一个版本问题。一种可能的解决方法是使用cb.ax.text()
# -*- 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$
生成正确的符号。