Создание нескольких графиков в Python для цикла - PullRequest
1 голос
/ 08 ноября 2019

Я хочу создать график (T / Tmax против R / R0) для разных значений Pa на одном графике, как показано ниже. Я написал этот код, который добавляет значения в список, но все значения (T / Tmax против R / R0) добавляются в один список, что не дает хорошего графика. Что я могу сделать, чтобы иметь такой сюжет? Также, как я могу сделать лист Excel из данных цикла, где столбец 1 - это список T / Tmax, а столбец 2,3,4 ... - соответствующие значения R / R0 для разных pa?

Example plot

KLMDAT1 = []

KLMDAT2 = []

for j in range(z):

    pa[j] = 120000-10000*j

    i = 0
    R = R0
    q = 0
    T = 0

    while (T<Tmax):

        k1 = KLM_RKM(i*dT,R,q,pa[j])
        k2 = KLM_RKM((i+0.5)*dT,R,q+0.5*dT*k1,pa[j])
        k3 = KLM_RKM((i+0.5)*dT,R,q+0.5*dT*k2,pa[j])
        k4 = KLM_RKM((i+1)*dT,R,q+dT*k3,pa[j])

        q = q +1/6.0*dT*(k1+2*k2+2*k3+k4)
        R = R+dT*q

        if(R>0):

            KLMDAT1.append(T / Tmax)
            KLMDAT2.append(R / R0)

        if(R>Rmax):
                Rmax = R

        if (abs(q)>c or R < 0):
                    break
        T=T+dT
        i = i+1

wb.save('KLM.xlsx')

np.savetxt('KLM.csv',[KLMDAT1, KLMDAT2])

plt.plot(KLMDAT1, KLMDAT2)

plt.show()

1 Ответ

0 голосов
/ 08 ноября 2019

Вы планируете это неправильно. Ваша первая переменная должна быть T / Tmax. Поэтому инициализируйте пустой список T, добавьте к нему значения T, разделите его на Tmax, а затем построите график дважды: сначала KLMDAT1, а затем KLMDAT2. Следующий псевдокод объясняет это

KLMDAT1 = []
KLMDAT2 = []
T_list = [] # <--- Initialize T list here

for j in range(z):
    ...

    while (T<Tmax):
        ...

        T=T+dT
        T_list.append(T) # <--- Append T here
        i = i+1

# ... rest of the code

plt.plot(np.array(T_list)/Tmax, KLMDAT1) # <--- Changed here
plt.plot(np.array(T_list)/Tmax, KLMDAT2) # <--- Changed here

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