2016-05-03 3 views
1

У меня есть следующий masterResult.csv файла:Используйте Matplotlib, чтобы установить ось х

DATE, DATASET,  BUILD  Col1 Col2 Col3 
5/3/16, Amazon,  1001   1113 344 169 
5/3/16, Amazon,  1002   1113 344 169 
5/3/16, Amazon,  1005   1113 344 169 
5/3/16, Amazon,  1006   1113 344 169 

Я хотел бы нарисовать график, используя matplotlib.

Мой код:

per_data=genfromtxt('masterResult.csv',delimiter=',',names=True) 
for name in per_data.dtype.names[2:]:  
    plt.plot(per_data['BUILD'], per_data[name], label=name) 

Но это дало мне: graph for masterResult.csv

И диапазон оси Х не является правильным. Как сделать так, чтобы диапазон по оси х составлял от 1001 до 1006?

ответ

0

Импорт:

Вы можете использовать различные parameters для оптимизации импорта:

data = np.genfromtxt('masterResult.csv', skip_header=1, usecols=(2,3,4,5), dtype="i8", autostrip=True) 

print data 
# [[1001 1113 344 169] 
# [1002 1113 344 169] 
# [1005 1113 344 169] 
# [1006 1113 344 169]] 

Участок:

Наконец простой сюжет данных:

draw = plt.plot(data[:,0], data[:,range(1,4)], '--o') 
plt.legend(draw, ('Col1', 'Col2', 'Col3')) 
plt.xlabel("Build") 
plt.show() 

enter image description here

+0

Большое спасибо! Но для моей оси x, как добавить 1001, ~ 1005 в качестве метки x? и к файлу будет добавлено больше, мы планируем запустить это много раз, и мне нужно показать фактический номер сборки. –

+0

OH Я получаю его, + 1.001e3 - это плавающее число. Благодаря! –

+0

Точно, иначе вы можете [форматировать ярлыки] (http://stackoverflow.com/questions/3677368/matplotlib-format-axis-offset-values-to-whole-numbers-or-specific-number). –

2

Простой способ установить xaxis, если ваши данные были правильными, будет plt.xlim(1001,1006), но это не проблема.

Причина, по которой ваша ось x неверна, в первую очередь потому, что ваш файл данных не является правильным CSV-файлом. СТРОЙ и последующие столбцы не разделяются запятыми, что путает numpy. Если вы посмотрите на per_data напрямую, вы увидите, что BUILD не установлен на номер вообще. Вам нужно либо добавить запятые последовательно, либо использовать их как данные, разделенные пробелами/пробелами. И вообще, если все выглядит очень не правильно, может быть полезно посмотреть на ваш массив напрямую, а не просто начертить его.

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