python簡単なホットマップを描く

1885 ワード

画像をホットマップ、つまりheatmapで可視化する必要がある場合があります.次は私のコードです.
# coding=utf-8
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
import urllib
from pyheatmap.heatmap import HeatMap
data = []
# sdata = np.load(Image.open('/media/xhj/LENOVO/hjxu-code/maskgrid/123finl.tif'))
sdata =np.load('/home/xhj/hjxu-code/model2/data/123/bigbig12345.npy')      #sdata          npy    
rows,cols=sdata.shape
for i in range(1,rows):
    for j in range(1,cols):
        if sdata[j,i] > 0.5:        #    ,       0-1,     0.5   
           a = [i,j]
           data.append(a)
        else:
            continue

# imgbigroot = '/media/xhj/LENOVO/hjxu-code/maskgrid/2000/TUmor-016,_3.tif' #        
# data_a = np.load('/home/xhj/hjxu-code/model2/data/123/filename12345.npy')
# data_b =Image.open(imgbigroot)
# data = data_a*data_b
hm = HeatMap(data)   
 hm.clickmap(save_as="/home/xhj/PycharmProjects/Metasverify/save/hit.png")        #         
hm.heatmap(save_as="/home/xhj/PycharmProjects/Metasverify/save/bigheat.tif")    #       
# hit_img2 = hm.heatmap(base=data_b)
# hit_img2.save("/home/xhj/PycharmProjects/Metasverify/save/hit3.tif")
#plt.imshow(hit_img2) #     
# plt.axis('off') #       
# plt.show()
a[]は、入力されたデータが[[123,234],[429,82],[220,535],...]のようなリストまたはメタグループであることに対応し、平面座標のセットとして理解することができる.例えば座標[123234]で赤くなる必要があります.このとき入力したaは[123234]です.
下図にも対応できますが、以下はこちらを転載しますhttps://sanwen8.cn/p/67bI7L3.html
画像を描く場合は、任意の画像であってもよいし、別のクリック図であってもよい下図を指定することもできます.例:
1 2 3 4 5 6 7 8 9 10
defexample2():       data_1=loadDataFromFile("test_data.txt")     data_2=loadDataFromFile("test_data2.txt")       hm=HeatMap(data_1)     hit_img=hm.clickmap()     hm2=HeatMap(data_2)     hit_img2=hm2.clickmap(base=hit_img,color=(0,0,255,255))     hit_img2.save("hit2.png")