首页 > 解决方案 > 如何阻止 matplotlib 跳过数据中的空白?

问题描述

我有这个简单的 csv:

date,count
2020-07-09,144.0
2020-07-10,143.5
2020-07-12,145.5
2020-07-13,144.5
2020-07-14,146.0
2020-07-20,145.5
2020-07-21,146.0
2020-07-24,145.5
2020-07-28,143.0
2020-08-05,146.0
2020-08-10,147.0
2020-08-11,147.5
2020-08-14,146.5
2020-09-01,143.5
2020-09-02,143.0
2020-09-09,144.5
2020-09-10,143.5
2020-09-25,144.0
2021-09-21,132.4
2021-09-23,131.2
2021-09-25,131.0
2021-09-26,130.8
2021-09-27,130.6
2021-09-28,128.4
2021-09-30,126.8
2021-10-02,126.2

如果我将它复制到excel中并散点图,它看起来像这样

擅长

这是对的; 中间应该有很大的差距(仔细看数据,从2020年跳到2021年)

但是,如果我在 python 中这样做:

import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_csv('data.csv')
data.plot.scatter('date', 'count')
plt.show()

它看起来像这样:

matplotlib

它均匀地间隔它们在间隙处消失了。我该如何阻止这种行为?我试着做

 plt.xticks = data.date

但这并没有什么不同。

标签: pythonpandasmatplotlib

解决方案


我不完全知道数据中列的类型,但这可能是因为“日期”列的 tpye 是字符串。所以python不理解可比较的价值。在绘图之前尝试转换它的类型。

data['date'] = pd.to_datetime(data['date'])


推荐阅读