Как построить точки или линии над pcolormesh? - PullRequest
0 голосов
/ 13 мая 2019

У меня есть pcolormesh, построенная на основе научных данных, и я хотел бы построить точки пиков и, в конечном итоге, линию, которая их соединит.В данных 18k баллов.Я делаю в Python следующее:

meas = #the data I read from .json file
ex['x'] = np.array(meas['vc'])[:400]
y = np.array(meas['vrf_dc'])
ex['y'] = np.linspace(y.min(),y.max(), int(len(y)/400/2))
ex['z'] = np.array(meas['s'])[18000:].reshape(len(ex['y']), len(ex['x']))

fig, ax = plt.subplots()
ax.pcolormesh(ex['x'], ex['y'], ex['z'])

И получаю это: pcolormesh plot

Я использую scipy.signal.find_peaks для получения пиков со следующим кодом:

peaks = []
for sweep in range(len(ex['y'])):
    peak, _ = find_peaks(ex['z'][sweep], height=20, distance=20)
    peaks += [peak]

И, в конце концов, попробуйте построить эти пики на предыдущем рисунке:

fig, ax = plt.subplots()
ax.pcolormesh(ex['x'], ex['y'], ex['z'])
for i, sweep_peak in enumerate(peaks):
    ax.scatter(ex['x'][sweep_peak[0]], ex['y'][i], 'rx')

Я получаю ошибку:

TypeError: ufunc 'sqrt' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

Заранее спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...