2016-06-22 6 views
1

Я пытаюсь построить тепловую карту с plt.pcolormesh, а затем начертить контур моей фигуры с plt.scatter, и я хотел бы обрезать результат согласно форма последнего графика, который является контуром.Обрезка 1 в зависимости от формы участка 2

Не похоже, что это сложно сделать, но все же я не смог это сделать или ничего не нашел. Вот мой код и изображение для иллюстрации, спасибо за вашу помощь!

plt.rcParams["figure.figsize"] = (10.0, 10.0) 
plt.axis("off") 
plt.pcolormesh(x, y, intens) 
plt.colorbar() 
coord = np.genfromtxt("myfile.csv", delimiter = ' ') 
x = [coord[i][0] for i in range(0, len(coord))] 
y = [coord[i][1] for i in range(0, len(coord))] 
plt.scatter(x, y, c = 'k', s = 1.) 

Image here

ответ

0

Вы можете просто использовать plt.xlim() и plt.ylim() и дать им координаты новой фигуры. Вот модифицированная версия кода:

plt.rcParams['figure.figsize'] = (10.0, 10.0) 
plt.axis('off') 
plt.pcolormesh(x, y, intens) 
plt.colorbar() 
coord = np.genfromtxt('myfile.csv', delimiter=' ') 
x = coord[:, 0] 
y = coord[:, 1] 

plt.scatter(x, y, c='k', s=1.) 

plt.xlim([np.min(x), np.max(x)]) 
plt.ylim([np.min(y), np.max(y)]) 
+0

Спасибо за помощь, особенно для более короткий вариант взять координаты х и у, как вы можете видеть, что я новичок в Python: р Я Фактически, у меня есть тот же результат, он масштабируется до размера 2-го числа, но я хотел бы обрезать его так, чтобы он просто следовал контуру. Итак, здесь я хотел бы удалить все за пределами белого рисунка: [Вот пример] (https://s31.postimg.org/b68jqe3gr/test2.png) – frenchelp