Мне удалось частично добиться успеха с триконтуром, но выглядит оно не очень хорошо. Пример данных здесь. data.xls
Вот код и выходные данные:
Код: Выделить всё
df = df.read_excel('......xlsx', ...)
data_arr = df.to_numpy()
direction= np.radians(data_arr[:,1])
values = data_arr[:,0]
zeniths = data_arr[:,2]
r, theta = np.meshgrid(zeniths,direction)
fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
#/limits for the colorscale
lmin=min(data_arr[:,0])
lmax=max(data_arr[:,0])
colormap = plt.get_cmap('rainbow')
norm = matplotlib.colors.Normalize(lmin, lmax)
ax.set_theta_zero_location("N")
ax.set_theta_direction(-1)
ax.tricontourf(direction,zeniths,values,30, cmap=colormap)
plt.show()
введите сюда описание изображения
Предпочли бы лучшую интерполяцию.
Один пример того, что я пробовал:
Код: Выделить всё
import pandas as df
import numpy as np
from matplotlib.pyplot import *
import matplotlib.pyplot as plt
from scipy import interpolate
df = df.read_excel('...xlsx', )
data_arr = df.to_numpy()
direction= np.radians(data_arr[:,1])
values = data_arr[:,0]
zeniths = data_arr[:,2]
def grid(direction, zeniths, values, resX=100, resY=100):
xi = np.linspace(min(direction), max(direction), resX)
yi = np.linspace(min(zeniths), max(zeniths), resY)
Z = interpolate.griddata(direction, zeniths, values, xi, yi, method='cubic')
X, Y = np.meshgrid(xi, yi)
return X, Y, Z
X, Y, Z = grid(direction, zeniths, values)
contour = plt.contourf(X,Y,Z)
Произошло исключение: TypeError
griddata() получил несколько значений для аргумента «метод»
Файл «…Contour PolarPlot 2», строка 20, в
grid=Z = interpolate.griddata(направление, зениты, значения, xi, yi, метод='cubic')
Файл "/Contour PolarPlot 2", строка 23, в
X, Y, Z = сетка(направление, зениты, значения)
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
Ошибка типа: Griddata() получила несколько значений для аргумента «метод».
Пробовал другую комбинацию контурф, контур и т. д. Всегда возникает какая-то ошибка. Возможно, она связана с неправильным форматом массива, но не знаю, как ее исправить.
Подробнее здесь: https://stackoverflow.com/questions/783 ... t-problems