我有一个简单的数据框,其中列出了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分,但是在执行代码后,这就是我得到的。
答案 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()