2016-03-03 2 views
0

Я пытаюсь построить файл CSV, и это то, что он выглядит следующим образом:Попытка Постройте CSV файл

Date Ebola: Case counts and deaths from the World Health Organization and WHO situation reports 
3/22/2014 49 
3/24/2014 86 
3/25/2014 86 
3/26/2014 86 
3/27/2014 103 
3/28/2014 112 
3/29/2014 112 
3/31/2014 122 
4/1/2014 127 
4/4/2014 143 
4/7/2014 151 
4/9/2014 158 
4/11/2014 159 
4/14/2014 168 
4/16/2014 197 
4/17/2014 203 
4/20/2014 208 
4/23/2014 218 
4/26/2014 224 
5/1/2014 226 
5/3/2014 231 
5/5/2014 235 
5/7/2014 236 
5/10/2014 233 
5/12/2014 248 
5/23/2014 258 
5/27/2014 281 
5/28/2014 291 
6/1/2014 328 
6/3/2014 344 
6/10/2014 351 
6/16/2014 398 
6/18/2014 390 
6/20/2014 390 
6/30/2014 413 
7/2/2014 412 
7/6/2014 408 
7/8/2014 409 
7/12/2014 406 
7/14/2014 411 
7/17/2014 410 
7/20/2014 415 
7/23/2014 427 
7/27/2014 460 
7/30/2014 472 

Я импортировать его в моем MATLAB рабочего пространства. Теперь я хочу построить эти данные с помощью MATLAB, но как это сделать? Переменные I для каждого столбца: Date и EbolaCaseCountsAndDeathsFromTheWorldHealthOrganizationAndWHOsit (извините, я не знаю, как сделать последнюю переменную короче).

Я пробовал делать plot(Date, EbolaCa[...]), но это дает мне ошибку. Каков правильный способ сделать это?

+0

Сообщение об ошибке было бы полезно ... – excaza

+0

Предполагая, что даты являются строками, они должны быть преобразованы, прежде чем вы сможете их построить. Смотрите: [Даты и время как числа и строки] (http://www.mathworks.com/help/matlab/dates-and-time-as-numeric-values.html) – excaza

+0

Ваши «даты» по-прежнему будут такими же строками , Они должны быть преобразованы в 'datetime', прежде чем вы сможете их использовать. –

ответ

1

Вы должны использовать как datenum(), так и datetick(), чтобы фактически показать даты на оси х. Я был в состоянии создать таблицу фрагмент кода следующим образом:

T={'3/22/2014' 49 
'3/24/2014' 86 
'3/25/2014' 86 
'3/26/2014' 86 
'3/27/2014' 103 
'3/28/2014' 112 
'3/29/2014' 112 
'3/31/2014' 122 
'4/1/2014' 127 
'4/4/2014' 143 
'4/7/2014' 151 
'4/9/2014' 158 
'4/11/2014' 159 
'4/14/2014' 168 
'4/16/2014' 197 
'4/17/2014' 203 
'4/20/2014' 208 
'4/23/2014' 218 
'4/26/2014' 224 
'5/1/2014' 226 
'5/3/2014' 231 
'5/5/2014' 235 
'5/7/2014' 236 
'5/10/2014' 233 
'5/12/2014' 248 
'5/23/2014' 258 
'5/27/2014' 281 
'5/28/2014' 291 
'6/1/2014' 328 
'6/3/2014' 344 
'6/10/2014' 351 
'6/16/2014' 398 
'6/18/2014' 390 
'6/20/2014' 390 
'6/30/2014' 413 
'7/2/2014' 412 
'7/6/2014' 408 
'7/8/2014' 409 
'7/12/2014' 406 
'7/14/2014' 411 
'7/17/2014' 410 
'7/20/2014' 415 
'7/23/2014' 427 
'7/27/2014' 460 
'7/30/2014' 472}; 
T=cell2table(T); 
T.Properties.VariableNames={'Date','Ebola'}; 

, где первый столбец состоит из строк и второй столбец состоит из цифр. Для создания plot() вы можете захотеть сделать что-то вроде

figure(1); 
plot(datenum(T.Date,'m/dd/yyyy'),T.Ebola); 
datetick('x','dd/mmm/yyyy'); grid on; 

, который показывает

enter image description here

Однако, не стесняйтесь регулировать datenum() и datetick() формат (ы), как вы хотите.

+0

. Дата может быть либо 'mm/dd/yyyy', либо' m/dd/yyyy'. Как выразить это как формат? –

+0

Этот подход работает даже с 2-значными месяцами. Я попытался добавить новое значение в октябре 2014 года, и он был добавлен в сюжет. Нет проблем. – Alessiox

+0

Я получаю сообщение об ошибке «Не удалось преобразовать строку даты в число» для кода «plot» (дата, «m/dd/yyyy»), Ebola). –

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