在Python上,如何使绘图从最接近所需的时间开始
我想画一个图表,它在X轴上有UTC时间。我希望从一个特定的时间开始: 例如:如果我希望图表从6:00左右开始,到9:00结束,那么代码需要找到距离6:00最近的度量值,然后从那里开始,最后结束到距离9:00最近的度量值 现在,我必须通过选择绘图范围手动执行此操作(例如[1:1000]) 我使用的代码如下:在Python上,如何使绘图从最接近所需的时间开始,python,pandas,datetime,matplotlib,Python,Pandas,Datetime,Matplotlib,我想画一个图表,它在X轴上有UTC时间。我希望从一个特定的时间开始: 例如:如果我希望图表从6:00左右开始,到9:00结束,那么代码需要找到距离6:00最近的度量值,然后从那里开始,最后结束到距离9:00最近的度量值 现在,我必须通过选择绘图范围手动执行此操作(例如[1:1000]) 我使用的代码如下: import os from spacepy import pycdf import numpy as np import pandas as pd import matplotlib.pyp
import os
from spacepy import pycdf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime
import matplotlib.dates as mdates
import pandas as pd
import matplotlib.units as munits
from cycler import cycler
##In order to acquire the data download the file named (psp_fld_l2_mag_RTN_4_Sa_per_Cyc_20181003_v01.cdf it is the secod file) at this site ##(http://research.ssl.berkeley.edu/data/psp/data/sci/fields/l2/mag_RTN_4_Sa_per_Cyc/2018/10/)
##then rename to 1003.cdf
我现在得到的结果是:
任何帮助都将不胜感激 @TrentonMcKinney数据链接如下(),您必须从该pagr下载名为()psp_fld_l2_mag_RTN_2018120106_v01.cdf)的第二个文件
data12 = pycdf.CDF('1003.cdf')
formats = ['%y', # ticks are mostly years
'%b', # ticks are mostly months
'%d', # ticks are mostly days
'%H:%M', # hrs
'%H:%M', # min
'%S.%f', ] # secs
# these can be the same, except offset by one level....
zero_formats = [''] + formats[:-1]
# ...except for ticks that are mostly hours, then its nice to have month-day
zero_formats[3] = '%d-%b'
offset_formats = ['',
'%Y',
'%b %Y',
'%d %b %Y',
'%d %b %Y',
'%d %b %Y %H:%M', ]
converter = mdates.ConciseDateConverter(formats=formats,
zero_formats=zero_formats,
offset_formats=offset_formats)
munits.registry[np.datetime64] = converter
munits.registry[datetime.date] = converter
munits.registry[datetime.datetime] = converter
colors = ['black', 'r', 'g']
for numb in range(0,3,1):
plt.plot(data12['epoch_mag_RTN_4_Sa_per_Cyc'][90000:111300],data12['psp_fld_l2_mag_RTN_4_Sa_per_Cyc'][90000:111300,numb],'--',label=data12['label_RTN'][numb],linewidth=0.3,color = colors[numb])
plt.legend(loc=3)
plt.xlabel('', fontsize=2)
plt.ylabel(data12['psp_fld_l2_mag_RTN_4_Sa_per_Cyc'].attrs['UNITS'])
plt.title(str(data12['psp_fld_l2_mag_RTN_4_Sa_per_Cyc'].attrs['CATDESC']))
plt.show()