Я рисую данные с помощью Python и хочу посмотреть, как меняются амплитуды в течение дня.У меня есть файл подгонки, который содержит данные, которые я хочу построить, и выглядит так:
[ 0 1 2 ... 86397 86398 86399]
Это время в секундах.
[ -28.3 -27.84 -29.88 ... 0.18 -0.92 -0.28]
Это амплитуда вдБ
Я написал код на Python, где время изменяется от секунд до формата "% H:% M:% S" и данных, из которых получается амплитуда, например:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
from astropy.io import fits
import matplotlib.pyplot as plt
import pylab
import os, sys
import numpy as np
import datetime
from datetime import timedelta
import time
import matplotlib
from datetime import datetime
#Dimensiones de la figura a graficar
fig_size = [18, 20]
plt.rcParams['figure.figsize'] = fig_size
data_vlf = fits.open('PLO-20171018.fits')
t = pylab.transpose(data_vlf[0].data)[0]
time_vlf = t.astype(int)
time_format = [str(timedelta(seconds=s)) for s in time_vlf]
t_format = '%H:%M:%S'
date_vlf = [datetime.strptime(i, t_format).time() for i in time_format]
ch = pylab.transpose(data_vlf[0].data)[6]
pylab.plot(date_vlf, ch, color='black')
plt.legend(['Channel 6'])
plt.xlabel('Time UT')
plt.ylabel('Amplitude')
plt.show()
Но я также хочу посмотреть, как меняется амплитуда для каждого часа дня, поэтому я написал этот код, но он не работает так, как я хочу.
h_i = 0
h_i_2 = 3600
h_f = 21600
for i in range(1, 7):
for num1 in range(h_i, h_f, 3600):
for num2 in range(h_i_2, h_f+1, 3600):
t_1 = date_vlf[num1:num2]
ch_1 = ch[num1:num2]
plt.subplot(3, 2, i)
pylab.plot(t_1, ch_1)
plt.xlabel('1 hour (UT)')
plt.ylabel('Amplitude')
plt.show()
Но я делаю неправильно.Я новичок в питоне.Буду признателен за любую помощь.
Спасибо за продвижение.