首页 > 解决方案 > 使用 Pandas 数据框和 Matplotlib 生成平滑线

问题描述

我正在尝试使用包含时间(以天数衡量)和一组代表社会经济变量的数字的数据集生成一条平滑线。

这是我的数据示例:

date, data
726,1.2414
727,1.2414
728,1.2414
729,1.2414
730,1.2414
731,1.2414
732,1.2414
733,1.2414
734,1.2414
735,1.2414
736,1.2414
737,1.804597701
738,1.804597701
739,1.804597701
740,1.804597701
741,1.804597701
742,1.804597701
743,1.804597701
744,1.804597701
745,1.804597701
746,1.804597701
747,1.804597701
748,1.804597701
749,1.804597701
750,1.804597701
751,1.804597701
752,1.793103448
753,1.793103448
754,1.793103448
755,1.793103448
756,1.793103448
757,1.793103448
758,1.793103448
759,1.793103448
760,1.793103448
761,1.793103448
762,1.793103448
763,1.793103448
764,1
765,1 

到目前为止,这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
%matplotlib inline

out_file = "path_to_file/file.csv"
df = pd.read_csv(out_file)

time = df['date']
data = df['data']
ax1 = plt.subplot2grid((4,3),(0,0), colspan = 2, rowspan = 2) # Will be adding other plots
plt.plot(time, data)
plt.yticks(np.arange(1,5,1)) # Include classes 1-4 showing only 1 step changes
plt.gca().invert_yaxis() # Reverse y axis 
plt.ylabel('Trend', fontsize = 8, labelpad = 10)

这会生成以下图:

测试图

我看过回答类似问题的帖子(如下面的问题),但似乎无法让我的代码正常工作。谁能提出一个优雅的解决方案?

使用 matplotlib 生成平滑线图

Python Matplotlib - 具有日期值的 x 轴平滑绘图线

标签: pythonpandasmatplotlibsmoothing

解决方案


推荐阅读