在图

时间:2016-12-30 15:11:04

标签: pandas matplotlib

我试图用一部分数据框注释我的情节。但是,时间00:00:00出现在所有行标签中。有没有一种干净的方法来删除它们,因为我的数据是每天频繁的?我已经尝试了规范化功能,但这并没有消除时间;它只是把时间归零。

以下是问题的原因以及重现问题的示例代码。 enter image description here

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas.tools.plotting import table

# Setup of mock data
date_range = pd.date_range('2014-01-01', '2015-01-01', freq='MS')
df = pd.DataFrame({'Values': np.random.rand(0, 10, len(date_range))}, index=date_range)

# The plotting of the table
fig7 = plt.figure()
ax10 = plt.subplot2grid((1, 1), (0, 0))
table(ax10, np.round(df.tail(5), 2), loc='center', colWidths=[0.1] * 2)
fig7.show()

1 个答案:

答案 0 :(得分:1)

只需访问DateTimeIndex的{​​{3}}属性,即可以datetime.date格式表示索引的每个元素。

默认DateTimeIndex格式为datetime.datetime,即使您之前没有明确定义索引,也会自动定义。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas.tools.plotting import table   

np.random.seed(42)
# Setup of mock data
date_range = pd.date_range('2014-01-01', '2015-01-01', freq='MS')
df = pd.DataFrame({'Values': np.random.rand(len(date_range))}, date_range)
df.index = df.index.date                                   # <------  only change here

# The plotting of the table
fig7 = plt.figure()
ax10 = plt.subplot2grid((1, 1), (0, 0))
table(ax10, np.round(df.tail(5), 2), loc='center', colWidths=[0.1] * 2)
fig7.show()

.date