簡體   English   中英

Python 等高線圖/熱圖

[英]Python Contour Plot/HeatMap

我在來自 LoL 比賽的 df 中有 x 和 y 坐標,我想創建一個輪廓 plot 或加熱 map 以顯示玩家通常在比賽中移動的位置。
有誰知道我該怎么做?

一個輪廓 plot 或熱 map 需要 3 個值。 您必須提供 x、y 和 z 值才能為 plot 提供輪廓,因為 x 和 y 給出 position 並且 z 給出要顯示輪廓的變量的值作為 x 和 y 的變量。

如果您想將玩家的運動顯示為時間的 function,您應該查看 matplotlib 的動畫。 或者如果你想顯示“球員密度場”,你必須計算它。

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import scipy
from scipy.stats.kde import gaussian_kde
from scipy import ndimage
from matplotlib import cm


#select the x and y coordinates
x = df['x']
y = df['y']
nbins= 512 
k = gaussian_kde(np.vstack([x,y]))
xi, yi = np.mgrid[0:512, 0:512] #size of the image/map in px
zi = k(np.vstack([xi.flatten(), yi.flatten()]))

im = mpimg.imread("map.png")#Put he background image


fig = plt.figure(figsize=(9,9))

ax2 = fig.add_subplot()



ax2.contourf(xi, yi, zi.reshape(xi.shape), alpha=0.5, cmap=cm.jet, extent=[1, -1, 1, -1])


ax2.set_xlim(0, 512)
ax2.set_ylim(0, 512)


ax2.axis('off')


plt.imshow(im, extent=[0, 512, 0, 512])
plt.savefig(f'Enemies/Clausura/{team}/{team} Stats/{summoner[1]} Early.png', dpi=None, bbox_inches='tight', pad_inches=0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM