2015-04-28 2 views
0

У меня есть набор данных с датами первого столбца в форме 'dd-mm-yy' (так например (15-3-1978) и во втором столбце. Сейчас я хочу строить даты против цен , но, к сожалению,Как построить даты по сравнению с ценами

plot(dates,prizes) 

не работает Может кто-нибудь помочь мне

+2

Пожалуйста, опубликовать [mcve] (HTTP: //stackoverflow.com/help/mcve) – kkuilla

+0

и сообщите нам, что "doesn ' т работы ". Как график отличается от ожидаемого? –

ответ

3

Всегда при работе с датами использовать функции вокруг datenum и становится легкой задачей:.?

dates = {'15-3-1978'; 
     '16-3-1978'; 
     '18-3-1978'} 

prizes = [ 42 
      19 
      84 ] 
datesNum = datenum(dates,'dd-mm-yyyy') 
datesStr = datestr(datesNum) 

plot(datesNum,prizes) 
set(gca,'XTick',datesNum) 
set(gca,'XTickLabel',datesStr) 

enter image description here


Очень удобно также datetick функция в качестве альтернативного варианта:

plot(datesNum,prizes) 
datetick('x','dd-mm-yyyy') 

enter image description here


Что касается вашего комментария, то посмотрите на datetick's format options у вас есть различные варианты. Для набора данных, как

dates = {'15-3-1978'; 
     '16-4-1978'; 
     '18-5-1979'} 

с использованием выше кода и дополнительно:

plot(datesNum,prizes) 
datetick('x','QQ-yy') 

вы получите, например:

enter image description here

Generally this article may be helpful for you as well.

+0

О, и вы тоже используете новый движок рендеринга .... Ницца ... – kkuilla

+0

Спасибо! Возможно ли иметь только метки на оси х в каждом квартале или каждом году? Мой набор данных очень широк (у меня есть приз за каждый месяц с 1975 по 2010 год), поэтому все надписи накладываются. – Lotte

+0

@Lotte посмотрите на мое редактирование. Пожалуйста, подумайте также о том, чтобы принять ответ, нажав зеленую галочку слева, чтобы указать системе, что ваша проблема решена. Спасибо! – thewaywewalk

Смежные вопросы