首页 > 解决方案 > matplotlib 不会绘制所有值

问题描述

我正在使用 Jupyter 笔记本,我正在尝试绘制这个 Pickled 数据框

index       value
------------------
2020-10-19  3
2020-10-26  4
2020-11-02  3
2020-11-09  2
2020-11-16  1
2020-11-23  3
2020-11-30  1
2020-12-07  4
2020-12-14  6
2020-12-21  3
2020-12-28  1
2021-01-04  1
2021-01-11  5
2021-01-18  10
2021-01-25  9
2021-02-01  8
2021-02-08  12
2021-02-15  6

我正在使用此代码(分为不同的单元格,但无关紧要):

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

plt.style.use('ggplot')

data = pd.read_pickle('data.pkl')

fig, ax = plt.subplots(figsize=(10,10))

weekly = data.resample('W-MON').sum()
ax.plot(weekly)

labels = [f"{d.day}-{d.month}-{d.year}" for d in weekly.index]
ax.set_xticklabels(labels, rotation=45)

它产生了这个图,但它缺少数据的后半部分

在此处输入图像描述

标签: pythonpandasmatplotlib

解决方案


问题是刻度量是由绘图自动生成的,因此是我需要的量的一半。指定通过多少个就足够了ax.set_xticks()

ax.set_xticks(weekly.index)  # <--
labels = [f"{d.day}-{d.month}-{d.year}" for d in weekly.index]
ax.set_xticklabels(labels, rotation=45)

有时较小的问题会引起更多的混乱,但是哦,好吧...


推荐阅读