Однако, когда я импортированные данные в массивы numpy, метки галочек - это беспорядок. Похоже, что он добавил метку для каждой точки данных вместо автоматического создания разумного масштаба.
Почему из-за моих данных он не создается автоматически ?
Как заставить MPL делать это автоматически для реальных данных с неравномерно расположенными данными X/Y?
"Нормальное" поведение:
Код: Выделить всё
import matplotlib.pyplot as plt
import numpy as np
import numpy.random as rnd
x = np.array( range(1000000) )
y = rnd.rand(1,1000000)[0]
fig, ax = plt.subplots()
ax.plot(x,y)
Реальные данные с неравномерно расположенными данными по оси X, импортированные из файла.
Фрагмент файла данных:
Код: Выделить всё
-1900.209922,-106.022
-1900.176409,-103.902
-1900.142897,-112.337
-1900.109384,-109.252
...
Код: Выделить всё
import numpy as np
import matplotlib.pyplot as plt
import csv
# Read CSV file
with open(r"graph.csv", encoding='utf-8-sig') as fp:
reader = csv.reader(fp, delimiter=",", quotechar='"', )
data_read = [row for row in reader]
#end with file
d = np.array(data_read).T # transpose
x = d[0][0:10]
y = d[1][0:10]
fig, ax = plt.subplots()
ax.plot( x, y, "." )
fig.show()

При увеличении вы можете видеть, что тики добавлены именно в моих точках данных:

Если я изменю X-данные на линейный массив, затем он автоматически отмечает ось X, помещая метки в интуитивно понятных местах (а не в точках данных):
Код: Выделить всё
y = d[1][0:100]
x = range( len(y) ) # integer x-axis points
fig, ax = plt.subplots()
ax.plot( x, y, "." )
fig.show()

Кстати, даже если я загружу 20 000 точек данных, так что ось Y охватывает диапазон от -106 --> -88 (в случае, если значения были слишком близко друг к другу), метки оси Y все равно будут конфликтовать:
Код: Выделить всё
y[-1]
Out[31]: '-88.109'
y[0]
Out[32]: '-106.022'

В конечном итоге Я буду загружать большое количество точек данных (200 000), поэтому нужно решить эту проблему.
Подробнее здесь: https://stackoverflow.com/questions/767 ... d-csv-data
Мобильная версия