5

2次元のスキャッターデータのヒートマップを作成するスクリプトを書いています。以下は私がやろうとしていることのおもちゃの例です:

import numpy as np
from matplotlib.pyplot import*
x = [1,2,3,4,5]
y = [1,2,3,4,5]
heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
imshow(heatmap, extent = extent)

「最も暖かい」領域はy=xに沿っていると予想する必要がありますが、代わりにy = -x + 5に沿って表示されます。つまり、ヒートマップは1つのリストを逆方向に読み取ります。なぜこれが起こっているのかわかりません。助言がありますか?

ありがとう

4

2 に答える 2

3

imshowパラメータを試してくださいorigin=lower。デフォルトでは、配列の(0,0)要素を左上隅に設定します。

例えば:

import numpy as np
import matplotlib.pyplot as plt
x = [1,2,3,4,5,5]
y = [1,2,3,4,5,5]
heatmap, xedges, yedges = np.histogram2d(x, y, bins=10)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.imshow(heatmap, extent = extent)
ax1.set_title("imshow Default");
ax2 = fig.add_subplot(212)
ax2.imshow(heatmap, extent = extent,origin='lower')
ax2.set_title("imshow origin='lower'");

fig.savefig('heatmap.png')

生産:

ここに画像の説明を入力してください

于 2012-01-06T20:39:04.853 に答える
0

ヒートマップの外観を散布図に表示されるものと一致させすぎないようにするには、実際に次を使用します。

ax2.imshow(heatmap.T, extent = extent,origin='lower')
于 2013-05-29T19:00:47.417 に答える