Как я могу нанести значения вероятности из разных списков друг на друга во всем диапазоне значений X? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть 5 разных списков y_0, y_1, y_2, y_3 и y_4: каждый из которых содержит 450120 значений вероятности.Соответствующие значения каждого из списков суммируют до 1, т.е. y_0 [n] + y_1 [n] + y_2 [n] + y_3 [n] + y_4 [n] = 1 для любого 'n'.

Ось X содержит индексы или временные шаги, которые являются числами, последовательно расположенными в диапазоне от 0 до 450119. Я хочу построить значения Y так, чтобы на них были нанесены соответствующие значения вероятности или записи из 5 списков с данным индексом.друг на друга в разных цветах.Например: если y_0 [0] = 0,2, y_1 [0] = 0,3, y_2 [0] = 0,1, y_3 [0] = 0,3, y_4 [0] = 0,1.Поэтому при x = 0 я хочу, чтобы следующее: y_0 [0] было нанесено красным цветом от 0 до 0,2, y_1 [0] - зеленым цветом от 0,2 до 0,5, y_2 [0] - желтым цветом от 0,5до 0,6, y_3 [0] для черчения синим цветом от 0,6 до 0,9, y_4 [0] для черчения розового цвета от 0,9 до 1.

И это должно повторяться для всех значений x от 0 до 450119.

В настоящее время я получаю много пустых мест на графике, а также много совпадений.Класс C5 вообще не виден. enter image description here

def plotAllClassesInOne(y_indices,y_0,y_1,y_2,y_3,y_4,filename):
    plt.xlabel('Time in seconds')
    plt.ylabel('P(Y|X)')
    plt.plot(y_indices, plott(y_0), 'y',label='C1')
    plt.plot(y_indices, plott([sum(x) for x in zip(y_0,y_1)]), 'r',label='C2')
    plt.plot(y_indices, plott([sum(x) for x in zip(y_0,y_1,y_2)]), 'g',label='C3')
    plt.plot(y_indices, plott([sum(x) for x in zip(y_0,y_1,y_2,y_3)]), 'b',label='C4')
    plt.plot(y_indices, plott([sum(x) for x in zip(y_0,y_1,y_2,y_3,y_4)]), 'k',label='C5') 
    plt.legend()
    fig1 = plt.gcf()
    fig1.savefig(filename)
    plt.close()

1 Ответ

0 голосов
/ 24 июня 2019

Это то, что вы пытаетесь сделать?

def plotAllClassesInOne(y_indices,y_0,y_1,y_2,y_3,y_4,filename):

    length = y_0.shape[0]
    xaxis = np.arange(0, length)
    c1_base = np.zeros(length)
    c1_height = y_0

    c2_base = c1_height
    c2_height = c2_base + y_1

    c3_base = c2_height
    c3_height = c3_base + y_2

    c4_base = c3_height
    c4_height = c4_base + y_3

    c5_base = c4_height
    c5_height = c5_base + y_4

    plt.xlabel('Time in seconds')
    plt.ylabel('P(Y|X)')
    ax.fill_between(xaxis, c1_base, c1_height, label='C1', color='y')
    ax.fill_between(xaxis, c2_base, c2_height, label='C2', color='r')
    ax.fill_between(xaxis, c3_base, c3_height, label='C3', color='g')
    ax.fill_between(xaxis, c4_base, c4_height, label='C4', color='b')
    ax.fill_between(xaxis, c5_base, c5_height, label='C5', color='k')
    plt.legend()
    fig1 = plt.gcf()
    fig1.savefig(filename)
    plt.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...