Python 如何使用数据框获取日期范围箱线图

Python 如何使用数据框获取日期范围箱线图,python,pandas,matplotlib,boxplot,Python,Pandas,Matplotlib,Boxplot,我有一个场景,索引是datetime对象,我想要绘制的数据是销售计数。大多数情况下,一天中会有多次销售,并且每天的销售额可能会有所不同。我想创建一个显示日期范围的绘图,根据我想在绘图中显示的天数,可以很好地格式化xticklabel。有点像。我尝试过不同的代码变体,但迄今为止都没有成功。有人能看一下我下面的脚本吗?请帮助我 import pandas as pd import matplotlib.pyplot as plt index1 = ['2017-07-01','2017-07-01

我有一个场景,索引是datetime对象,我想要绘制的数据是销售计数。大多数情况下,一天中会有多次销售,并且每天的销售额可能会有所不同。我想创建一个显示日期范围的绘图,根据我想在绘图中显示的天数,可以很好地格式化xticklabel。有点像。我尝试过不同的代码变体,但迄今为止都没有成功。有人能看一下我下面的脚本吗?请帮助我

import pandas as pd
import matplotlib.pyplot as plt

index1 = ['2017-07-01','2017-07-01','2017-07-02','2017-07-02','2017-07-03','2017-07-03','2017-07-03']
index2 = pd.to_datetime(index1,format='%Y-%m-%d')

df = pd.DataFrame([[123456],[123789],[123654],[654321],[654987],[789456],789123]],columns=['Count'],index=index1)

df.plot(kind='box')
plt.show()

使用T、转置和重塑数据帧

df.T.plot(kind='box', figsize=(10,7))
输出:

可以将这些日期作为单独的记录和箱线图保存。让我们这样做:

df.reset_index().set_index('index',append=True).unstack()['Count'].plot(kind='box',figsize=(10,7))

这样比较好

df.set_index(np.arange(len(df)),append=True).unstack(0)['Count']\
  .plot(kind='box',figsize=(10,7))
输出:


是否有办法像matplotlib一样格式化Xticklabel?是的,您可以格式化Xticklabel。看到了吗,这太棒了,除了如何解决重复的日子?箱线图应该描述每天的最小值、中值和最大值。您可以使用dataframe的drop_duplicates方法并为其提供一个子集。如果列标记为相同的日期,您如何做到这一点?我不认为熊猫会抓住所有像df2=df[''2017-07-01'']