如何解决清理X轴,因为数据点太多
我有一个像这样的数据集
Date Time Cash
1/1/20 12:00pm 2
1/1/20 12:02pm 15
1/1/20 12:03pm 20
1/1/20 15:06pm 30
2/1/20 11:28am 5
. .
. .
. .
3/1/20 15:00pm 3
我基本上将所有数据按y轴上的日期和x轴上的时间分组,并绘制了一个facetgrid,如下所示:
df_new= df[:300]
g = sns.FacetGrid(df_new.groupby(['Date','Time']).Cash.sum().reset_index(),col="Date",col_wrap=3)
g = g.map(plt.plot,"Time","Cash",marker=".")
g.set_xticklabels(rotation=45)
我回来的是可怕的(如下所示)。所以我想知道是否有一些整理X轴的方法?也许喜欢5-10个时间数据标签,以便可以看到时间,或者可以扩展图像?
编辑:我正在使用seaborn密谋。我希望它看起来像这样,其中x轴只有几个标签:
感谢您的投入。
解决方法
您是否尝试过使用移动平均值而不是实际数据?您可以使用以下功能来计算任何数据的移动平均值:
def moving_average(a,n=10) :
ret = np.cumsum(a,dtype=float)
ret[n:] = ret[n:] - ret[:-n]
return ret[n - 1:] / n
将n
设置为需要的平均值,您可以使用该值。 a
是您的变量Cash
,表示为numpy数组。
此后,将Cash
列设置为真实值的移动平均值计数并将其绘制出来。绘图曲线会更平滑。
P.S。您在编辑中添加的自杀图确实难以理解,因为y轴的范围远高于所需范围。在实践中,请尽量避免此类情节。
修改
我没有注意到您最初是如何汇总数据的,您可能希望合并日期和时间。我不知道从哪里加载数据,以防您从csv加载数据,可以将其添加到read_csv
方法:parse_dates=[['Date','Time']]
中。如果没有,您可以使用数据框:
df['datetime'] = pd.to_datetime(df['Date'] + ' ' + df['Time'])
您使用日期时间创建一个新列,并且可以简单地使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。