2017-04-07 12 views
1

matplotlib(imshow関数)を使用してnumpy配列をプロットしています。そのサイズは1000 * 3000で、その値は0から2000の間の浮動小数点です。imshowでmatplotlibの丸められた値をプロットしない

最大値が約10(これは単なるテスト用です)のとき、私の姿は正しい値を持っていますが、その振幅はすべて値は整数に丸められているので、配列の一部でニュアンスが見えません。

この問題に対応するimshowのパラメータはありますか?私は2番目に考えました(cmap = None)が、私は成功しませんでした。実際の配列にそうでない一方

import numpy as np 
import matplotlib.pyplot as plt 
import random as rand 

data = np.zeros((10,10)) 

for i in range(10): 
    for j in range(10): 
     data[i,j] = 900 + 10*i + rand.random() 

plt.imshow(data) 
plt.show() 

matplotlibのウィンドウの値は全て整数である:ここ

は一例です。

+1

A [、最小完全、かつ検証例](http://stackoverflow.com/ help/mcve)が役に立ちます。 – DavidG

答えて

1

座標フォーマッタを変更することができます。正式な例はhereです。また、this質問への答えの最初の部分は、同じことをやや異なる方法を示しています。 zは小数点以下4桁を有するフロートであるx、y座標が整数であるように私は、コードを変更した:

class Formatter(object): 
    def __init__(self, im): 
     self.im = im 
    def __call__(self, x, y): 
     z = self.im.get_array()[int(y), int(x)] 
     return 'x=%i, y=%i, z=%1.4f' % (x, y, z) 

data = np.zeros((10, 10)) 

for i in range(10): 
    for j in range(10): 
     data[i, j] = 900 + 10 * i + rand.random() 

fig, ax = plt.subplots() 
im = ax.imshow(data) 
ax.format_coord = Formatter(im) 

plt.show() 
+0

座標フォーマッタの例は正しいですが、この答えのフォーマッタは、デフォルトの場合の半分のピクセルで正しくありません。 – ImportanceOfBeingErnest

関連する問題