簡體   English   中英

Matplotlib Colorbar科學記數法偏移

[英]Matplotlib Colorbar scientific notation offset

在繪制顏色條時,頂部標簽(我猜這將被稱為偏移)是錯誤居中的。 這並沒有發生,我有舊代碼的示例,它位於顏色條上方,但我不知道發生了什么變化。

例:

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()也沒有改善這一點,盡管工作示例中缺少它。

您可以簡單地使用set_offset_position作為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()

在此輸入圖像描述

總而言之,它看起來就像默認值從右向左變化。

使用上面的代碼和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$生成正確的符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM