Я думаю, что это должен быть один из случаев для функции date2num в matplotlib:
from matplotlib.dates import date2num
x = date2num(dftq.index)
Однако вы просто попробовали
dftq.topic0.plot()
?
РЕДАКТИРОВАТЬ: (для вопроса: как построить график, выбрав определенный интервал времени?)
Вы можете сделать это либо ужеиндексирование данных, которые будут нанесены на график, с помощью .loc
dftm.loc['2012-04':'2012-06'].plot()
# or
dftm.topic0.loc['2012-04':'2012-06'].plot()
или путем корректировки пределов осей всего графика впоследствии:
ax = dftm.plot()
ax.set_xlim('2012-04', '2012-06')
# or
import matplotlib.pyplot as plt
dftm.plot()
plt.xlim('2012-04', '2012-06')
дополнительная: (относительно построения с использованием matplotlib api и date2num)
Первое предложение через matplotlib и его date2num
также будет работать, если временной индекс не изменяется свведите datetime to period.
Но все же: чтобы не иметь целых чисел на отметках оси x, а были бы красиво отформатированные даты, вам нужно будет добавить что-то вроде
from matplotlib.dates import DateFormatter
xfmt = DateFormatter('%Y-%m')
ax1.xaxis.set_major_formatter(xfmt)