문제 : 몇 일간의 timeseries 데이터가 있습니다.이 데이터를 패싯 형식으로 플롯하기 위해 Seaborn python 라이브러리의 sns.FacetGrid 함수를 사용합니다. 몇몇 사례에서, 나는 언급 된 해번 함수가 두 줄 사이에 연속적인 누락 값 (nan
값)을 표시한다는 것을 발견했다. while matplotlib는 누락 된 값을 갭으로 표시합니다. 하기 matplotlib 플롯 갭 측값을 표시보다도 그것은 다음 플롯 Seaborn에서 누락 된 값을 플로트하지 마십시오.
결과로
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# create timeseries data for 3 days such that day two contains NaN values
time_duration1 = pd.date_range('1/1/2018', periods=24,freq='H')
data1 = np.random.randn(len(time_duration1))
ds1 = pd.Series(data=data1,index=time_duration1)
time_duration2 = pd.date_range('1/2/2018',periods=24,freq='H')
data2 = [float('nan')]*len(time_duration2)
ds2 = pd.Series(data=data2,index=time_duration2)
time_duration3 = pd.date_range('1/3/2018', periods=24,freq='H')
data3 = np.random.randn(len(time_duration3))
ds3 = pd.Series(data=data3,index=time_duration3)
# combine all three days series and then convert series into pandas dataframe
DS = pd.concat([ds1,ds2,ds3])
DF = DS.to_frame()
DF.plot()
으로하는 데모 예이다. 지금 우리가 플롯 라인과 누락 된 데이터를 표시하는 방법을 시본
DF['col'] = np.ones(DF.shape[0])# dummy column but required for facets
DF['timestamp'] = DF.index
DF.columns = ['data_val','col','timestamp']
g = sns.FacetGrid(DF,col='col',col_wrap=1,size=2.5)
g.map_dataframe(plt.plot,'timestamp','data_val')
참조로 시본 기능에 대한 동일한 데이터를 준비 할 수 있습니다. 어떻게 그런 선으로 nan
값을 표시하지 않도록 해번을 강제해야합니까?
참고 : 이것은 더미 예제이며, 어떤 경우에도 데이터를 플롯하기 위해 패싯 격자가 필요합니다.