如何制作变量的叠加图,但是我想要制作的每个图都有不同的数据长度

How to make overlay plots of a variable, but every plot than i want to make has a different length of data

我想叠加3​​0个地块,每一个都是一天的温度,最后比较温度的变化和一天之间的差异,问题是什么时候我在 pandas 中分隔数据(分隔 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

我要的图是这个 enter image description here

小米数据是这样表示的

enter image description here

这是格式

enter image description here

如果我理解你的问题,你想在一个图中绘制所有天,你必须生成一个数字,plt.plot() 在你最终 plt.show() 之前的所有天图像包括之前制作的所有图。尝试如下所示:

(不知道你的数据,不知道这段代码行不行,至少概念应该清楚了)

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')

对于你问题的第二部分: 由于您的数据存储有时间戳,您可以将其转换为 pandas 时间对象。将它们用于绘图时,x 轴不应再有偏移量。我修改了上面代码中的 tiempo =... 赋值。

x-tics 现在应该会自动进入时间模式。