Python 以规则间隔出现在条形图中的随机数据

Python 以规则间隔出现在条形图中的随机数据,python,matplotlib,bar-chart,Python,Matplotlib,Bar Chart,我有一个数据集,其中包含与新冠病毒-19数据相关的信息,列为['total_cases','new_cases','date']。数据单调增加,至少在1月份新的_病例中没有突然出现峰值。数据集可以在这里找到:有很多列,其中我只使用了['total\u cases','new\u cases','date'] 如图所示,“新案例”的前10天数据为0: 我使用此代码为'date'与'new\u cases'绘制条形图: import pandas as pd import matplotlib.p

我有一个数据集,其中包含与新冠病毒-19数据相关的信息,列为['total_cases','new_cases','date']。数据单调增加,至少在1月份新的_病例中没有突然出现峰值。数据集可以在这里找到:有很多列,其中我只使用了
['total\u cases','new\u cases','date']

如图所示,
“新案例”的前10天数据为0:

我使用此代码为
'date'
'new\u 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”)的一些峰值,在数据集中,新的_案例明显为0。大约每隔一个月进行一次


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

感谢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'])

谢谢戴维斯·赫林指出我的错误

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

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'])

看起来你已经交换了月份和日期。谢谢你指出!熊猫似乎使用了默认的数据格式来解析我的数据集中的前12个条目,然后它意识到实际的数据格式是什么。例如,在分析“01-01-2020”时,实际格式为“%d-%m-%Y”,但它使用“%m-%d-%Y”只是为了观察到第13个条目的数据格式不同。我在解析我的csv时指定了数据格式,它给了我正确的结果。看起来您交换了月份和日期。感谢您指出!熊猫似乎使用了默认的数据格式来解析我的数据集中的前12个条目,然后它意识到实际的数据格式是什么。例如,在分析“01-01-2020”时,实际格式为“%d-%m-%Y”,但它使用“%m-%d-%Y”只是为了观察到第13个条目的数据格式不同。我在解析csv时指定了数据格式,它给了我正确的结果。