2017-01-20 22 views
-1

Мой график показывает на оси x порядковые номера (из дат) использует хорошую схему подгонки. Но я хочу, чтобы ось показывала даты в нормальном формате (dd-mm -yyyy) без изменения сюжета.matplotlib - показывать даты вместо порядкового номера по оси x в моем сюжете (цена акции против даты). Я использую «toordina() l» для построения графика

Кроме того,

ordinalDates = [] 

for the whole stock cvs: 

      dateToNumber = datetime.datetime.toordinal(datetime.date()) 
      ordinalDates.append(dateToNumber) 

У меня есть список, имеющий все преобразованные даты (в порядковом номере). и этот список является тем, который я использую, чтобы соответствовать кривой линейной регрессии, а также строить график.

Check Image

+0

возможно попытаться бросить их к Силе? – fafnir1990

+0

Если вы хотите указать даты, по которым вы используете номера? – Goyo

+0

@Goyo. Все программы (даже такие фондовые программы, как Excel) используют число, преобразованное в даты (от 1 jan, 1990), чтобы сделать ось времени (даты) равномерно разделенной и разнесенной. Итак, вместо дат я дал порядковые номера matplot. Кроме того, я не знал, могу ли я построить кривую с необработанными датами (мм-дд-гггг) на одной из осей. –

ответ

1

Преобразование их в строку во втором списке:

dateToNumber = datetime.datetime.toordinal(datetime.date()) 
ordinalDates.append(dateToNumber) 
strDates.append(str(datetime.date())) 

А затем обновить xticklabels:

plt.set_xticklabels(strDates) 
+0

Работает как нож на сливочном масле. Спасибо! –