Matplotlib图显示不在熊猫日期框架中的日期

时间:2019-01-11 19:53:45

标签: python-3.x pandas matplotlib

我有一个简单的数据框,其中列出了10天。在这10天中,有1天是假期。我为数据框中的每个日期分配了一个值(1)。我正在尝试绘制数据。 1月5日应该是假期,但是即使我在创建用于创建数据框的字典的过程中将其排除在外,也会将其打印在绘图上。我的代码如下。

from datetime import date, timedelta
import matplotlib.pyplot as plt
from pandas import DataFrame, to_datetime

START_DATE = date(2019,1,1)
DATE_LIST = []

for i in range(10):
    DATE = START_DATE + timedelta(i)
    if DATE != date(2019,1,5):
        DATE_LIST.append(DATE)

DATE_DICTIONARY = {}.fromkeys(DATE_LIST, 1)

DATAFRAME = DataFrame({"Value":DATE_DICTIONARY})
DATAFRAME.reindex(to_datetime(DATAFRAME.index)).plot(legend=False)
plt.show()

时的输出
if DATE != date(2019,1,5):

已删除,并且1月5日也添加到了DATE_LIST外观中 像这样

Figure when the january 5th is added

我想要完全相同的x轴格式,但是没有januray的5分,但是在执行代码后,这就是我得到的。

Figure when january 5th is excluded

1 个答案:

答案 0 :(得分:0)

数字5仍然存在于4到6之间并不奇怪,这与您是否在数据中实际拥有该数字无关。

如果要将日期视为类别,可以使用matplotlib。

from datetime import date, timedelta
import matplotlib.pyplot as plt
from pandas import DataFrame, to_datetime

START_DATE = date(2019,1,1)
DATE_LIST = []

for i in range(10):
    DATE = START_DATE + timedelta(i)
    if DATE != date(2019,1,5):
        DATE_LIST.append(DATE)

DATE_DICTIONARY = {}.fromkeys(DATE_LIST, 1)

df = DataFrame({"Value":DATE_DICTIONARY})
df = df.reindex(to_datetime(df.index))

plt.plot(df.index.astype(str), df.values)
plt.setp(plt.gca().get_xticklabels(), rotation=45, ha="right")
plt.tight_layout()
plt.show()

enter image description here