Большое количество значений в csv файле. Matplotlib

Всем привет! Есть csv файл с по которому строится график. При выводе самого графика подпись оси х и y нечитаема.

import matplotlib.pyplot as plt
import csv

X = []
Y = []

with open('2.csv', 'r') as datafile:
   plotting = csv.reader(datafile, delimiter=';')

   for ROWS in plotting:
      X.append(ROWS[0])
      Y.append(ROWS[2])

plt.plot(X, Y)
plt.show()

Как это исправить?


Ответы (3 шт):

Автор решения: wchistow

Можно сделать вот так:

import matplotlib.pyplot as plt
import csv

X = []
Y = []

with open('2.csv', 'r') as datafile:
    plotting = csv.reader(datafile, delimiter=';')

    for ROWS in plotting:
        X.append(ROWS[0])
        Y.append(ROWS[2])

    # Оставляем в списках только каждые вторые значения
    X = X[::2]
    Y = Y[::2]

plt.plot(X, Y)
plt.show()

Суть в том, что показываются только каждые вторые значения.

Вы можете подстроить этот код под свои данные, просто меняя число 2.

→ Ссылка
Автор решения: CrazyElf

Для числовых данных matplotlib нормально сам оси размечает. Из этого я делаю вывод, что у вас скорее всего данные в виде текста получаются, попробуйте их преобразовать в float:

      X.append(float(ROWS[0]))
      Y.append(float(ROWS[2]))
→ Ссылка
Автор решения: strawdog

Чтобы из такого графика введите сюда описание изображения

получить нормальный введите сюда описание изображения

, используйте ООП-подход matplotlib, а затем установите линейный локатор с нужным вам количеством меток:

fig, ax = plt.subplots(figsize=(6,4)) # <-- размер изображения в дюймах
ax.plot(X, Y)
ax.xaxis.set_major_locator(ticker.LinearLocator(numticks=10)) #<-- здесь
plt.show()
→ Ссылка