matplotlib группирует значения оси x

У меня очень странное поведение в matplotlib + seaborn.

Пожалуйста, не обращайте внимания на эстетические особенности!

У меня есть файл .csv, строки которого имеют очень маленькие значения.

Чтение csv с пандами:

csvdata = pd.read_csv('csv.csv', sep=';', header=None, index_col=0)
idx = np.arange(1, 33)
y = csvdata.iloc[4,idx]
x = csvdata.iloc[0,idx]

Каждая строка этого файла - это мой "y" и имеет следующие значения:

0.000001479;0.000001562;1.47E-06;1.39E-06;1.35E-06;1.36E-06;1.33E-06;1.30E-06;1.25E-06;1.26E-06;0.000001249;1.23E-06;1.21E-06;1.19E-06;1.17E-06;1.18E-06;1.17E-06;1.12E-06;1.11E-06;1.10E-06;1.11E-06;1.10E-06;0.000001073;0.000001055;1.05E-06;1.05E-06;1.03E-06;1.02E-06;1.02E-06;1.01E-06;1.01E-06;1.01E-06

'х' это:

0.223214286;0.446428571;0.669642857;1;1;1;2;2;2;2;2;3;3;3;3;4;4;4;4;4;5;5;5;5;6;6;6;6;6;7;7;7

Когда я пытаюсь построить эту строку в matplotlib, она дает мне:

введите здесь описание изображения

Как видно, график группирует множество значений. Я попытался установить значения оси x, чтобы сделать их правильными, поэтому я сделал:

fig = sb.plt.figure(figsize=(12, 5))
ax = fig.add_subplot(111)
ax.plot(x, y, '-o', color='orange', linewidth=3)

fmt = tkr.FormatStrFormatter('%1.1E')
ax.yaxis.set_major_formatter(fmt)
fmt = tkr.FormatStrFormatter('%1.2f')
ax.xaxis.set_major_formatter(fmt)

ax.xaxis.set_major_locator(tkr.MultipleLocator(.22))

И результат:

введите здесь описание изображения

И я хочу (экспортировано из Excel):

введите здесь описание изображения

Есть идеи, что вызывает эту проблему? На мой взгляд, это должно быть так же просто, как: plot (x, y), и matplotlib должен идентифицировать все значения на обеих осях...

Я что-то пропустил?

Заранее всем спасибо!


person Helder    schedule 18.12.2015    source источник
comment
Я предполагаю, что данные, которые вы вставили выше, это то, что вы определяете как y? Что у тебя здесь x? я подозреваю, что проблема именно в этом   -  person tmdavison    schedule 18.12.2015
comment
@tom, я обновлю свой вопрос, добавив информацию о x и y ...   -  person Helder    schedule 18.12.2015
comment
Можете ли вы отредактировать вопрос с образцом для x (как вы сделали для y)?   -  person Mel    schedule 18.12.2015
comment
@tmoreau, конечно, я это сделаю.   -  person Helder    schedule 18.12.2015
comment
@tmoreau Теперь я вижу, что моя проблема связана с x vlaues! попробую исправить!   -  person Helder    schedule 18.12.2015
comment
Ну, конечно, ваши значения будут сгруппированы: посмотрите на свои x значения после первых 3: 1;1;1;2;2;2;2;2;3;3;3;3;4;4;4;4;4;5;5;5;5;6;6;6;6;6;7;7;7   -  person tmdavison    schedule 18.12.2015


Ответы (1)


После некоторых предложений @tom и @tmoreau я увидел, что проблема связана со значениями o x!

Спасибо, ребята!

Эти данные csv экспортируются из Excel, и если «Числовой формат» не имеет точности, он будет экспортировать данные как усеченные значения!

После исправления у меня есть значения x:

0.22321428571428600000;0.44642857142857100000;0.66964285714285700000;0.89285714285714300000;1.11607142857143000000;1.33928571428571000000;1.56250000000000000000;1.78571428571429000000;2.00892857142857000000;2.23214285714286000000;2.45535714285714000000;2.67857142857143000000;2.90178571428571000000;3.12500000000000000000;3.34821428571428000000;3.57142857142857000000;3.79464285714286000000;4.01785714285714000000;4.24107142857143000000;4.46428571428571000000;4.68750000000000000000;4.91071428571428000000;5.13392857142857000000;5.35714285714286000000;5.58035714285714000000;5.80357142857143000000;6.02678571428571000000;6.25000000000000000000;6.47321428571428000000;6.69642857142857000000;6.91964285714285000000;7.14285714285714000000

И сюжет работает как шарм:

введите здесь описание изображения

person Helder    schedule 18.12.2015