Постройте разные графики один за другим на одном рисунке python - PullRequest
0 голосов
/ 28 марта 2020

У меня 201 набор данных, из которого я хочу построить некоторые данные. Я строю радиус в зависимости от скорости и хочу сделать его видимым. Далее я хочу удалить этот график и построить следующий график на том же рисунке. Таким образом, можно увидеть плавную эволюцию графика. Проблема в том, что каждый график строится на новом рисунке, поэтому я просто получаю 201 число с 201 различным графиком, как вы можете видеть на изображении.

image of different figures

Я не думаю, что это симуляция, потому что графики должны быть построены немедленно, как нормальный plt.plot(…) (я пробовал код симуляции). Я пробовал много разных вещей, но они не работают. Это код у меня сейчас. Я, наверное, должен включить где-нибудь функцию удаления где-то, но я точно не знаю.

dynamic = plt.figure()

for j in range(0, 201):
    if j < 10:
       data = pd.read_csv('cout000' + str(j) + '.blk', sep='\s', skiprows=3, 
                          engine='python', header=None)
    elif j >= 10 and j < 100:
       data = pd.read_csv('cout00' + str(j) + '.blk', sep='\s', skiprows=3, 
                          engine='python', header=None)
    else:
       data = pd.read_csv('cout0' + str(j) + '.blk', sep='\s', skiprows=3, 
                          engine='python', header=None)

    velocity = np.array(data[4])*unit_velocity*10**(-5)
    radius = np.array(data[0])*unit_length
    tau_sp = np.array(data[12])

    i = 0
    while np.round(tau_sp[i], 2) != 1.00:
        i += 1

    plt.plot(1 - R_sun_CGS/radius, velocity, 'r-', linewidth=2)
    plt.plot(1 - R_sun_CGS/radius[i], velocity[i], 'ko', linewidth=2)

    plt.grid()
    plt.xlabel(r'$1 - \frac{R_{\odot}}{r}$', fontsize=20)
    plt.ylabel(r'v [km/s]', fontsize=20)
    plt.tick_params(labelsize=20)
    plt.tight_layout()
    plt.show()
...