График Y против X, поскольку X - временной диапазон для каждого значения y - PullRequest
1 голос
/ 08 июля 2019

Я пытаюсь построить простой график безрезультатно!

Вместо это лучшее, что я могу придумать, это это один

Даже этот простой не работает, главная проблема в том, что мне нужно, чтобы линия шла по горизонтали, скажем, в течение 5 минут при постоянном значении y, затем значение меняется, и я хочу, чтобы оно стало постояннымв течение еще 10 минут или около того.Примерно так:

Y = [5, 10, 11, 6]

X = [0-10 минут, 10 минут-25 минут, 25-45 минут, 45-50 минут]

график Y на фоне X

enter image description here

enter image description here

enter image description here

Ответы [ 2 ]

2 голосов
/ 08 июля 2019

Я думаю, вам нужна пошаговая функция. Обратите внимание, что здесь я добавил 0 к X и 5 к Y в начале, чтобы иметь правильный диапазон первого шага от 0 до 10

import matplotlib.pyplot as plt

X = [0, 10, 25, 45, 50]
Y = [5, 5, 10, 11, 6]

plt.step(X, Y)
plt.show()

РЕДАКТИРОВАТЬ: Если у вас есть несортированный массив X и вы хотите суммировать значения X, вы можете использовать cumsum из NumPy. Основная идея заключается в том, чтобы сначала вставить 0 в список, а затем преобразовать в массив с последующим накопительным суммированием

import matplotlib.pyplot as plt
import numpy as np

X = [6, 27, 9, 19]
X.insert(0,0)
X = np.cumsum(X)

Y = [5, 5, 10, 11, 6]

plt.step(X, Y)
plt.show()

enter image description here

1 голос
/ 08 июля 2019

Я предлагаю простое решение для петель, как показано ниже. Чтобы сделать рисунок более привлекательным, вы можете указать разные цвета, текст и т. Д.

#!/usr/bin/env ipython
# ------------------
import numpy as np
import matplotlib as mpl
import matplotlib.pylab as plt
# --------------------
xdata=[0,10,25,45,50]
ydata=[5,10,11,6];
colors=['b','b','b','b']
# --------------------
fig=plt.figure();
ax=fig.add_subplot(111);
for i in range(len(xdata)-1):
    xloc=0.5*(xdata[i+1]+xdata[i])
    xwidth=xdata[i+1]-xdata[i];
    ax.bar(xloc,ydata[i],width=xwidth,color=colors[i]);
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...