Python matplotlib imshow из файла данных - PullRequest
1 голос
/ 27 апреля 2020

У меня есть файл данных с 3 столбцами (xy z1 z2 z3), в котором z имеет значение, соответствующее точке сетки x, y файл данных

Я хотел бы создать matplotlib.pyplot.imshow из данных, сохраненных в файле с использованием z1 .. Я нашел этот фрагмент кода, который не работает для меня должным образом:

x,y,data1 = np.genfromtxt('cosrevalsjpdf.dat',usecols=(0,1,2),unpack=True,skip_header=0)
xll = x.min();  xul = x.max();  yll = y.min();  yul = y.max()
xi = np.linspace(x.min(), x.max(), 100) 
yi = np.linspace(y.min(), y.max(), 100) 
zi = scipy.interpolate.griddata((x, y), z, (xi[None,:], yi[:,None]), method='linear')

fig = plt.figure()
plt.imshow(zi, extent=[xll, xul, yll, yul], origin='lower', cmap=cm.hot, alpha=0.9)
plt.show() 

Я хотел бы получить двухмерный контурный график, полный цвета, не похожий на используя contourf с генерацией линии iso .. как я могу это сделать?

используя контур следующим образом:

plt.contourf(xi,yi,zi,cmap=cm.hot, levels=20)

Я получаю это ... это неплохо, но я бы хотел полностью заполнить черным белую область, как я могу это сделать? result

1 Ответ

1 голос
/ 27 апреля 2020

Получить текущую ось с помощью ax = plt.gca() и изменить ее цвет с помощью ax.set_facecolor('black') или ax.patch.set_facecolor('black').

...