我有一个简单的dataframe,其中包含一组针对datetime
s记录的值,这些值被设置为索引。有没有什么简单的方法可以把这些数据绘制成一周中的几天?我的意思是类似下面这样的东西,一周中的几天横轴,不同星期的数据用不同的颜色绘制:
我当前的代码如下所示,但对于一个概念上简单的事情来说,它似乎很复杂:
df["weekday"] = df["datetime"].dt.weekday
df["weekday_name"] = df["datetime"].dt.weekday_name
df["time_through_day"] = df["datetime"].map(lambda x: x - datetime.datetime.combine(x.date(), datetime.time()))
def days_through_week(row):
return row["weekday"] + row["time_through_day"] / (24 * np.timedelta64(1, "h"))
df["days_through_week"] = df.apply(lambda row: days_through_week(row), axis = 1)
datasets = []
dataset = []
previous_days_through_week = 0
for days_through_week, value in zip(df["days_through_week"], df["value"]):
if abs(days_through_week - previous_days_through_week) < 5:
dataset.append([days_through_week, value])
else:
datasets.append(dataset)
dataset = []
previous_days_through_week = days_through_week
for dataset in datasets:
x = [datum[0] for datum in dataset]
y = [datum[1] for datum in dataset]
plt.plot(x, y, linestyle = "-", linewidth = 1.3)
plt.ylabel("value")
plt.xticks(
[ 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5],
[ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
)
设置:
绘图:
^{pr2}$相关问题 更多 >
编程相关推荐