Matplotlib箱线图日期轴问题

        之前分析工具有个需求,就是绘制每天统计数据的箱线图,然后通过均值或者中值看一下数据变化趋势,但是箱线图比较特殊,它更类似柱状图或者条形图,它的横坐标更多表示一个类别标签的概念,其实趋势的侧重不太明显,但是因为我们的数据是时间序列,所以最终肯定会有个趋势,只不过横坐标可能不像常规图像那样了。然后就在绘图的过程中发现一个问题,直接看代码吧

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
import matplotlib.dates as mdates
from matplotlib.pyplot import MultipleLocator,AutoLocator
from matplotlib.dates import DateFormatter,AutoDateFormatter

df = pd.DataFrame({
    '2022-12-03':np.arange(10),
    '2022-12-04':np.arange(10),
    '2022-12-05':np.arange(10),
    '2022-12-06':np.arange(10),
    '2022-12-07':np.arange(10),
    '2022-12-08':np.arange(10),
})
df.columns = pd.to_datetime(df.columns,format='%Y-%m-%d')
bp = df.boxplot()
formatter = DateFormatter('%Y-%m-%d')
bp.xaxis.set_major_formatter(formatter)
bp.xaxis.set_major_locator(AutoLocator())

结果

如果我不加DateFormatter,数据是一切正常的,但是我一加formatter,值一下就变成1970了,这块我目前还没找到好的方法,目前暂时把日期变成字符串处理了 。

当时之所以加formatter,是因为需求不要显示时分秒,但是只要转成datetime,matplotlib就会自动加00:00:00,很烦。

猜你喜欢

转载自blog.csdn.net/zy1620454507/article/details/128297423