У меня есть .txt
данных с разделителями, размером около 600 x 600 ячеек. Я сделал это с помощью Matplotlib imshow
, и теперь я хочу проанализировать интересующую его часть. В частности, мне интересно нарисовать определенную область вокруг определенной (x, y) точки и вернуть среднее значение (из файла) в пределах этой области. Я провел некоторые поиски, но не могу найти ничего, что позволило бы мне манипулировать этим как таковым. Самое близкое, к чему я пришел - это функция patches
или patches.Circle
, но все, что я могу сделать, это нарисовать круг вокруг определенной точки. Я не могу извлечь (или не могу понять, как) любую информацию оттуда. Вот мой рабочий пример:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
#Setup Plots
fig, ax = plt.subplots(figsize=(20, 10))
plt.rcParams.update({'font.size': 20})
#Open Data
filename = "smalltest.txt"
data = np.genfromtxt(filename, delimiter = ";", skip_header = 0)
#Colourmap
ax.imshow(data, cmap ='hot', interpolation='nearest')
#-------------------------------------
#Average values around point
#Create circle
circ = patches.Circle((345, 195), 60, alpha=0.8, fc='none',
edgecolor = 'yellow')
ax.add_patch(circ)
fig.colorbar(ax.imshow(data, cmap ='hot', interpolation='nearest'),
label = "Temperature (K)")
plt.show()
Вот картинка в качестве примера:
График произведен. Попытка получить среднее значение в нарисованном круге