2016-05-10 7 views
1

私は現在、matplotlibで計測器で記録された2次元マップをプロットしようとしています。計器は2つのモーターを動かしており(ラスターを作ります)、関連する強度値を記録しています。 私は現在、データをプロットして、私が望む値を軸に関連付けることができますが、イメージの各ピクセルでモータの対応する値を得るために、これらの値をデジタル化(離散化)したいと思います。離散値を持つmatplotlibの2Dマップ

私は現在(この例ではIは、モータ位置を定義するx、yを使用します)、次のコードを使用してい

import pylab as pl 
pl.imshow(intensity, extent=(x_min, x_max, y_min, y_max), 
      interpolation='none') 

コードは非常にうまく機能が、私は、ピクセルのいずれかを選択した場合私のプロットでカーソルを押すと、数字のような連続した値が返されます(図のように)。

example_map

それらの上にカーソルを配置することにより、直接(Iは各点/ピクセルのために保存されている)モーターの値を得ることができるだろうか?助けのための

おかげで、

ファビオ

+0

私はあなたのカーソルベースの問題を手伝ってはいませんが、[seaborns heatmap with annot = True](https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.heatmap.html) )は有効な代替手段ですか?この場合、これらの値は直接プロットされます。しかし、あなたのグリッド解像度が高すぎるかもしれません。 – sascha

+0

指示をいただきありがとうございます、これらのマップは非常に見栄えが良いですが、あなたの予想通り、私の場合のグリッド解像度は高すぎます。 – user2504163

答えて

0

あなたはmatplotlibのマニュアルのthis例のようcoordinate formatterを変更することによって、それを行うことができます。あなたの要求に簡単に適応がある:

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

X = 10*np.random.rand(5, 3) 

fig, ax = plt.subplots() 
ax.imshow(X, cmap=cm.jet, interpolation='nearest') 

def format_coord(x, y): 
    return 'x=%i, y=%i' % (x+1, y+1) 

ax.format_coord = format_coord 
plt.show() 

、この結果になる:

Changing the format of mouse position in matplotlib window

また、あなたはもっときれいな何かのためmpldatacursorをチェックアウトする場合があります。このオプションはthis questionをこちらからご覧ください。

関連する問題