python画图x轴时间间隔_Python Matplotlib-具有日期值的x轴的平滑绘图线

我试图使图形线条平滑,但是由于x轴值是日期,因此这样做非常麻烦.说我们有一个数据框如下

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

%matplotlib inline

startDate = '2015-05-15'

endDate = '2015-12-5'

index = pd.date_range(startDate, endDate)

data = np.random.normal(0, 1, size=len(index))

cols = ['value']

df = pd.DataFrame(data, index=index, columns=cols)

然后我们绘制数据

fig, axs = plt.subplots(1,1, figsize=(18,5))

x = df.index

y = df.value

axs.plot(x, y)

fig.show()

我们得到

zJha8.jpg

现在,为了使这条线平滑,已经有一些有用的staekoverflow问题,例如:

但是我似乎无法为我的示例获得一些代码来做到这一点,有什么建议吗?

解决方法:

您可以使用熊猫附带的插值功能.因为您的数据框已经具有每个索引的值,所以您可以使用稀疏的索引填充它,并使用NaN值填充每个先前不存在的索引.然后,在选择多种插值methods available中的一种之后,插值并绘制数据:

index_hourly = pd.date_range(startDate, endDate, freq='1H')

df_smooth = df.reindex(index=index_hourly).interpolate('cubic')

df_smooth = df_smooth.rename(columns={'value':'smooth'})

df_smooth.plot(ax=axs, alpha=0.7)

df.plot(ax=axs, alpha=0.7)

fig.show()

rgyPg.png

标签:pandas,matplotlib,smooth,python,date

来源: https://codeday.me/bug/20191112/2024391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值