1

ここに画像の説明を入力ここに画像の説明を入力

私はmatplotlibでこのマトリックスを作成しました.いくつかの座標は[(1,109),(2,109),(2,130),(2,131),(2,132)]そうです. また、文字 ['A', 'B' 'H', 'A', 'H'] のリストもあり、各文字は行列の行と列に対応しています。行列の各正方形の大きさをどのように知ることができますか? 後で、文字のリストに依存するマトリックスに関連する色の部分を作成したいと思います。したがって、最初の A は行列 (1,109) 上の点に関連しているため、色の部分は、A の赤がその行と列に並んでおり、そこにある正方形と同じ幅であると言えます。2 番目の B は (2,109) に関連付けられており、色は青色で、その行と列に並んでおり、そこにある正方形と同じ幅です。

これの色は私が得ているものです。各色のセクションは特定のポイントのセクションに適用されるため、青の大部分が互いに隣り合っているBの大部分があります

4

1 に答える 1

1

これがあなたの望むものかどうかはわかりませんが、私はそれを突き刺します:

import matplotlib.pyplot as plt
import numpy as np

data = np.array([(1,1),(2,9),(2,3),(2,1),(2,2)])
letters = ['A', 'B', 'H', 'A', 'H']
colormap = {'A':(1,0,0),'B':(0,0,1),'H':(0,1,0)}

N = data.max() + 5
# color the background white (1 is white)
arr = np.ones((N,N,3))

for (x,y), letter in zip(data,letters):
    # color the point at (x,y) black
    arr[x,y] = (0,0,0)
    # color the x=0 band
    arr[0,y] =  colormap[letter]
    # color the y=N-1 band
    arr[x,N-1] =  colormap[letter]    

arr = arr.swapaxes(0,1)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

ax.imshow(arr, interpolation='nearest')
ax.invert_yaxis()
# ax.axis('off')
plt.show()

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

于 2013-02-13T14:30:18.930 に答える