from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
# create dummy data
dates = pd.date_range(start='24/4/2020', end='24/5/2020', freq='D')
val = np.random.rand(len(dates))
df = pd.DataFrame()
df['date'] = dates
df['value'] = val
现在使用
df.plot(x='date',y='value')
结果:
可以通过创建逻辑向量lg来排除周末,表示非周末:
lg = []
for day in df['date']:
day_ISO = day.isoweekday()
if day_ISO == 6 or day_ISO == 7: # check for saturday & sunday
lg.append( False )
else:
lg.append( True )
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
# create dummy data
dates = pd.date_range(start='24/4/2020', end='24/5/2020', freq='D')
val = np.random.rand(len(dates))
df = pd.DataFrame()
df['date'] = dates
df['value'] = val
df = df.set_index('date') # create a pandas.DatetimeIndex
lg = []
for day in df.index: # iterate over the indeces
day_ISO = day.isoweekday()
if day_ISO == 6 or day_ISO == 7: # check for saturday & sunday
lg.append( False )
else:
lg.append( True )
df[lg].plot(y='value') # no need to set the x-axis explicitly
问题是数据不再等距,这在聚合x轴上的标签时会产生问题。尽管如此,您仍然可以通过切片数据来实现这一点:
现在使用
结果:
可以通过创建逻辑向量
lg
来排除周末,表示非周末:并再次绘制数据,但使用此逻辑向量进行切片:
你也可以通过这种方式轻松地查看银行假期
上面的虚拟数据表明您实际上忽略了数据。如果您使用的是财务数据,则情况并非如此,因为财务数据根本不是在周末生成的。所以这条线仍然是连续的,但是x轴不再清晰了。因此,我建议调整轴,例如,通过为每个标签设置明确的日期,或者通过在绘图本身中用一条小的、灰色的垂直线指示被切碎的天数。。。或者类似的东西
编辑:使用
pandas.DatetimeInex
相关问题 更多 >
编程相关推荐