我有2个熊猫数据框,其中包含条目和日期。我试图用不同的颜色在一张图表上为每一天绘制当天的条目数:
def plotMultiple(dfList):
for df in dfList:
times = pd.DatetimeIndex(df.Date)
grouped = df.groupby([times.year, times.month]).size()
ax = grouped.plot(kind='line', x='Date', figsize=(50, 5))
df1 = pd.DataFrame({"Date":[
"21.11.2018 14:44",
"21.12.2018 14:43",
"22.12.2018 14:42",
"25.12.2018 14:51"]}
)
df1.head()
df2 = pd.DataFrame({"Date":[
"20.12.2018 14:44",
"21.12.2018 14:44",
"21.12.2018 14:43",
"22.12.2018 14:42",
"21.12.2018 14:43",
"22.12.2018 14:42",
"21.12.2018 14:43",
"22.12.2018 14:42",
"23.12.2018 14:51"]}
)
plotMultiple([df2,df1])
如果我传递一个包含一个数据帧的数组,这将非常有效,但是一旦存在多个,就会发生问题。该图不是从第一个条目开始,而是从某个随机点开始:
可以看出,该图在第一个条目处既不开始也不结束。我怎样才能使它从11月21日到12月25日?我可以同时使用pyplot和seaborn。
答案 0 :(得分:0)
使用集合中的Counter
来计算每个日期的所有出现次数。
import pandas as pd
import os
import matplotlib.pyplot as plt
from collections import Counter
df = pd.DataFrame({"Date":[
"20.12.2018 14:44",
"21.12.2018 14:44",
"21.12.2018 14:43",
"22.12.2018 14:42",
"21.12.2018 14:43",
"22.12.2018 14:42",
"21.12.2018 14:43",
"22.12.2018 14:42",
"23.12.2018 14:51"]}
)
date_count = Counter(df['Date'])
plt.plot(date_count.keys(), date_count.values())
plt.xticks(rotation=45)
# Repeat with different dataset and use `plt.plot()` at the end
# plt.plot(date_count.keys(), date_count.values())
# plt.xticks(rotation=45)
plt.show()