Большое количество значений в 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()


