Если я правильно понимаю, у вас есть массив M
длины n
. Каждый элемент M
, скажем, первый элемент M[0]
, представляет собой массив из четырех элементов [x_1, y_1, x_2, y_2]
, который определяет поле в большем пространстве. Затем эти блоки могут перекрываться, и вам нужна тепловая карта, которая создается общей комбинацией / расслоением всех этих блоков.
Я начну с генерации случайных данных:
import numpy as np
M = np.random.randint(0, high=500, size=(50,4))
Затем мы инициализируем пустую матрицу (я предполагаю, что полученная тепловая карта имеет размеры 500x500 на основе предоставленных вами данных образца, но вы можете настроить их соответствующим образом):
R = np.zeros((500,500))
Затем для каждой записи во входном массиве массивов мы заполняем соответствующий квадрат, добавляя 1 к каждому «пикселю», который покрывается размерами квадрата:
for row in M:
x1, y1, x2, y2 = row
for x in range(x1,x2+1):
for y in range(y1,y2+1):
R[x,y] += 1
Наконец, мы можем построить получившуюся тепловую карту:
import matplotlib.pyplot as plt
import seaborn as sns
sns.heatmap(R)
plt.show()
Что даст нам тепловую карту с перекрывающимися прямоугольниками, по желанию: