2016-04-26 27 views
0

私は値と対応する座標を持つ行列を持ち、与えられた座標に対してこの行列のヒートマップを描きたいと思う。実施例は指定された座標の点をヒートマップ

import numpy as np 
import matplotlib.pyplot as plt 

intensities=[[1,3,5],[2,4,6]] 

coords=[[[0,0],[1,0],[2,4]],[[2,1],[3,5],[6,1]]] 

plt.pcolormesh(intensities) 

あろうしかし、私はポイントがCOORDSによって与えられた座標にプロットされたいです。残念ながら、座標は2つの配列として表現することはできません。

私は、pcolormeshなどが長方形で塗りつぶされているため、間違ったツールである可能性が高いことがわかります。スペースを埋めるために使用されたポリゴンの特定の形状は気にしません。なぜなら、その効果が目に見えない点が十分にあるからです。

画像を後処理しようとすると問題が発生します。図は、非直交の参照フレームに対応するものとして描かれており、参照フレームが直交していればどのように見えるかを見たいと思っています。

+0

'強度 'は' coords'にどのように対応していますか?そして 'coords'を' coords = [[0,0]、[1,0]、[2,1]、[3,5]] 'のように長さ2の4つのサブリストのリストとして定義しようとしましたか? ? (OPでは、最初の2つのサブリストの周りに大量の括弧があるようです...) – unutbu

+0

申し訳ありませんが、私はこれを今修正しました。これは、座標[a、b ,:]が強度[a、b]のx、y座標を与えることを意味します。それが必要な場合は、私はこれらを書くための他の方法を見つけることもできます。 – Shinja

答えて

0

Per the commentscoords[a, b,:]は、すべての有効なaためintensities[a, b]bに関連付けられたy座標がXを与えます。私たちはxピックオフすることができ、y

enter image description here

s=200コントロールのサイズを

x = coords[..., 0].ravel() 
y = coords[..., 1].ravel() 

と座標とそれに対応する色が

c = intensities.ravel() 

import numpy as np 
import matplotlib.pyplot as plt 

intensities = np.array([[1, 3, 5], [2, 4, 6]]) 
coords = np.array([[[0, 0], [1, 0], [2, 4]], [[2, 1], [3, 5], [6, 1]]]) 

x = coords[..., 0].ravel() 
y = coords[..., 1].ravel() 
c = intensities.ravel() 
plt.scatter(x, y, c=c, s=200) 
plt.colorbar() 
plt.show() 
によって与えられますドット。私は大きな値を使って、例の中のいくつかのドットをより目立たせるようにしました。あなたはポイントがたくさんある場合は、もちろん、より小さい番号が欲しいでしょう。

+0

私の実際のプロットでポイントを小さくすれば、私が望むものが正確に表示されます。 – Shinja

関連する問題