首页 > 解决方案 > 定期出现在条形图中的随机数据

问题描述

我有一个数据集,其中包含与 COVID-19 数据相关的信息columns = ['total_cases', 'new_cases', 'date']。数据单调增加,至少 1 月份的 new_cases 没有突然激增。数据集可以在这里找到:https ://fnvuusdqoptinxntjrmdi.coursera-apps.org/edit/CovidIndiaData.csv有很多我只使用的列 ['total_cases', 'new_cases', 'date']

'new_cases'如下图所示,前 10 天的数据为 0 :
前 10 行数据集

'date'我使用此代码为vs绘制条形图'new_cases'

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.dates import DateFormatter
df = pd.read_csv("CovidIndiaData.csv", parse_dates=['date'], index_col=['date'])
df = df[['new_cases', 'total_cases']]
df.fillna(0)

fig = plt.figure()
ax = plt.gca()

ax.bar(df.index.values,
   df['new_cases'],
   color='purple')

ax.set(xlabel="Date",
   ylabel="New Cases",
   title="New Cases per day",
   xlim=["2020-01-01", "2020-07-18"])

date_form = DateFormatter("%m-%d")
ax.xaxis.set_major_formatter(date_form)

ax.xaxis.set_major_locator(mdates.WeekdayLocator(interval=1))
plt.setp(ax.get_xticklabels(), rotation=45)

plt.show()

最终的情节如下所示:
条形图

该图显示了 1 月 7 日的一些峰值(图上的“01-07”),其中很明显在数据集中 new_cases 为 0。这大约在每一个月间隔后继续。

这些数据来自哪里?如何为这些数据绘制正确的图表?

标签: pythonmatplotlibbar-chart

解决方案


感谢 Davis Herring 指出我的错误。

如果有人遇到类似问题,解决方案是在您的日期不是标准化格式时指定日期格式。我所做的是:

mydateparser = lambda x: pd.datetime.strptime(x, "%d-%m-%Y")
df = pd.read_csv("CovidIndiaData.csv", parse_dates=['date'], date_parser=mydateparser, index_col=['date'])

推荐阅读