我想叠加30个图,每个图都是一天的温度,以便最后比较温度的变化以及一天之间的差异,问题是当我分开数据(以30天为间隔)以熊猫为单位,每天的数据集具有不同的长度,例如第一天的温度数据为54977,第二天的数据为54988蚂蚁,第三天的数据也不同,所以我想要的履历是:覆盖30绘图,并在生成的图形中,x轴使用第一天的时间刻度,其他29个绘图仅与这些刻度匹配,并将数据减少到绘图中的极限,以使它们全部从另一点的终点开始几个小时或数据丢失都没关系,我只想做这样的事情(请参阅上图)。
到目前为止的代码是这个,我在python中不是很好,所以不要判断我的长代码
`
import pandas as pd
from datetime import date
import datetime as dt
import calendar
import numpy as np
import pylab as plt
import matplotlib.ticker as ticker
import seaborn as sns
>
datos = pd.read_csv("Jun2018T.txt", sep = ',', names=('Fecha', 'Hora', 'RADNETA', 'RADCORENT', 'RADCORSAL', 'RADINFENT', 'RADINFSAL', 'TEMP'))
>
datos['Hora'] = datos['Hora'].str[:9]
datos['Hora']
>
Dia01Jun2018 = datos[datos['Fecha'] == "2018-06-01"]
>
tiempo01=Dia01Jun2018['Hora']
temp01=Dia01Jun2018['TEMP']
>
imagen = plt.figure(figsize=(25,10))
plt.plot(tiempo01,temp01)
plt.xticks(np.arange(0, 54977, 7000)) #the number 54977 is the last data that the first day has, the second day has a different length an so on with the rest of the days
plt.xlabel("Tiempo (H:M:S)(Formato 24 Horas)")
plt.ylabel("Temperatura (K)")
plt.title("Día 01 Jun 2018")
plt.show()
imagen.savefig('D1JUN2018')
`
上面的代码每天重复,也许一个周期会更快,但我对python的处理不是很好。
结果是这张图是下一张:
我想要的图是这个enter image description here
Mi数据以这种形式表示
这是格式
如果我正确理解了您的问题,您想在一个绘图中整天绘图,则必须在最终将之前包含所有绘图的图像plt.show()整天之前生成一个图形plt.plot()。尝试如下所示的内容:
((由于我不知道您的数据,所以我不知道这段代码是否有效。至少应该清楚这个概念。)
import pandas as pd
from datetime import date
import datetime as dt
import calendar
import numpy as np
import pylab as plt
import matplotlib.ticker as ticker
import seaborn as sns
>
datos = pd.read_csv("Jun2018T.txt", sep = ',', names=('Fecha', 'Hora', 'RADNETA', 'RADCORENT', 'RADCORSAL', 'RADINFENT', 'RADINFSAL', 'TEMP'))
>
datos['Hora'] = datos['Hora'].str[:9]
>
imagen = plt.figure(figsize=(25,10))
for day in range(1,31):
dia = datos[datos['Fecha'] == "2018-06-"+(f"{day:02d}")]
tiempo= pd.to_datetime(dia['HORA'], format='%H:%M:%S').dt.time
temp= dia['TEMP']
plt.plot(tiempo, temp)
#plt.xticks(np.arange(0, 54977, 7000))
plt.xlabel("Tiempo (H:M:S)(Formato 24 Horas)")
plt.ylabel("Temperatura (K)")
plt.title("Jun 2018")
plt.show()
imagen.savefig('JUN2018')
问题的第二部分:由于您的数据带有时间戳存储,因此可以将其转换为熊猫时间对象。使用它们进行绘图,x轴不应再有偏移。我已经修改了上面代码中的tiempo =...
分配。
x-tics现在应该会自动进入时间模式。
经过Mig B的修改和他不可思议的知识,我做了所有的修改,一个疑问浮出水面,我想在图形中添加图例,但是当图例绘制时,图例会放置所有颜色,但日期是如果有人可以帮助我,我将所有代码都放在代码中]
> imagen = plt.figure(figsize=(25,10))
>
>
>for day in [1,2,3,4,5,6,8,9,10,13,14,15,17,18,21,23,25,27,28,29,30]:
> dia = datos[datos['Fecha'] == "2018-06-"+(f"{day:02d}")]
> tiempo= pd.to_datetime(dia['Hora'], format=' %H:%M:%S').dt.time
> temp= dia['TEMP']
> plt.plot(tiempo, temp)
> plt.xlabel("Tiempo (H:M:S)(Formato 24 Horas)")
> plt.ylabel("Temperatura (K)") plt.title("Temperatura Jun 2018")
> plt.legend(datos['Fecha'])
> plt.show()
>imagen.savefig('TEMPJUN2018')
结果是这个
令我困扰的其他问题是:
如果我想每10分钟计算每天每天的温度的最小值,最大值,平均值和标准偏差,我该怎么办?每天获得aprox 144值。
指向我用于代码的数据的链接是:mega.nz/#!cDQGCISJ!LUD9JhJIOVGyhmS8iyHQo6x9V9KWUdfR0_T882PAv0c