python - 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)
它产生了这个图,但它缺少数据的后半部分:
解决方案
问题是刻度量是由绘图自动生成的,因此是我需要的量的一半。指定通过多少个就足够了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)
有时较小的问题会引起更多的混乱,但是哦,好吧...
推荐阅读
- bash - bash 变量重复只在命令中使用一个实例
- powershell - 如何获取 PowerShell 字符串中最后一次出现的字符的索引?
- asp.net-mvc - 如何在 Kendo Grid ClientTemplate 的 If 条件中使用 ViewBag
- python - 骰子游戏,周围有正方形
- r - 在 dplyr 中选择时使用否定的 ends_with 和 starts_with
- corda - 跨 Corda 业务网络维护出处
- c# - 如何使用 XmlSerializer 序列化具有 DefaultValueAttribute 的属性?
- go - 读取Mmap的有效方法
- java - Spring WebSocket 集成测试随机工作
- soap - 如何验证来自 SOAP 响应的多个输出