При построении, желая «держать» значение Y в течение интервала x. [Не вопрос «гистограммы»] - PullRequest
0 голосов
/ 30 января 2020

По какой-то причине я ничего не знаю по этому поводу:

x = np.arange(5)
[0 1 2 3 4]

y = np.array((3, 6, 1, 9))
[3 6 1 9]

plt.plot(???)

Что делать с массивами, чтобы график оставался постоянным над «корзиной» от 0 до 1., т.е. значение 3 в интервале от 0 до 1, удержание значения 6 в интервале от 1 до 2 и т. д.

Это пример концепции, поскольку моя настоящая проблема заключается в том, что я делаю спектрограмму с нуля и Я использую plt.pcolorme sh (X, Y, Z) * ​​1009 *. У меня есть массивы аналогично этому примеру, и размер не совпадает. Либо я должен прекратить использовать номер 0 или номер 4 для сопоставления, но тогда сопоставление неверно с 1 точкой данных в соответствующем направлении.

1 Ответ

0 голосов
/ 30 января 2020

Вам необходимо добавить последнюю точку y, чтобы оба массива имели одинаковое количество элементов, а затем использовать drawstyle="steps-post" для получения пошагового вида.

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(5)
#[0 1 2 3 4]

y = np.array((3, 6, 1, 9))
#[3 6 1 9]

plt.plot(x, np.concatenate((y, [y[-1]])), drawstyle="steps-post")
plt.show()

enter image description here

Обратите внимание, что это не связано с plt.pcolormesh(X, Y, Z), где Z может (или должно даже) иметь на один элемент меньше сетки в каждом направлении.

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