2015-09-15 3 views
1

У меня проблема, с которой я не могу работать. У меня есть сетка значений, которые я интерполировал с помощью scipys griddata. Значения были отображены в виде карты тепла со значениями в [0,1]. Теперь я хотел бы построить линию перехода для значений 1/2.Переходная линия в тепловой карте - python

Возможно ли это? Моя первая идея состояла в том, чтобы извлечь координаты из grid_z, которые соответствуют 1/2, и используя координаты для линейного графика, но я не уверен, как это сделать.

Заранее спасибо.

EDIT: решаемый его через

xInd, yInd = np.where(np.logical_and(grid_z.T > 0.49, grid_z.T < 0.51)) 

, а затем построение линии!

ответ

3

Вы можете использовать contour() для этого:

import numpy 
import matplotlib 
matplotlib.use('Agg') 
import matplotlib.pyplot as plt 

x = numpy.linspace(0, 2*numpy.pi, 200) 
y = numpy.linspace(0, 2*numpy.pi, 200) 

xx, yy = numpy.meshgrid(x, y) 

z = numpy.sin(xx) * numpy.cos(yy) 

fig = plt.figure() 
s = fig.add_subplot(1, 1, 1) 
s.imshow(z, vmin=0, vmax=1) 
s.contour(z, levels=[0.5]) 
fig.savefig('t.png') 

enter image description here

+0

Отлично, я буду помнить это в будущем! – johnblund