Незначительные галочки отсутствуют только на некоторых графиках - PullRequest
0 голосов
/ 30 апреля 2019

Мой код извлекает CSV-файлы, подмножество данных, а затем проходит через каждый фрейм данных, чтобы получить вывод и некоторые графики.Код работает для всех моих тестовых данных, кроме двух поднаборов данных в одном файле CSV.Проблема в том, что второстепенные тики от 0 до 100 не отображаются на двух выходных графиках.Я просмотрел данные, я не понимаю, почему второстепенные тики не будут отображаться.

Я попытался установить главную ось с помощью этого кода,

locmaj = matplotlib.ticker.LogLocator(base=10.0, numticks = 6)
ax.yaxis.set_major_locator(locmaj)

Но это не такпомочь, даже если я установил равные числа в младшей строке loglocator.Это приводит к интересному поведению, когда 0 и 1 вообще не отображаются на оси Y.

fig, ax = plt.subplots()
ax.scatter(df['cunnanes'],df['turbidity'], s = 4)
ax.scatter(exceed['exceedance'], exceed['turbidity'])

ax.set_title(names[i] + ' Exceedance graph')
ax.set_xlabel('Exceedance Probability (%)')
ax.set_ylabel('Turbidity (FNU)')
ax.set_yscale('symlog')
ax.set_ylim([-0.5, 10000])

ax.minorticks_on
ax.tick_params(axis = 'x', which = 'both', direction  = 'in', top = True, bottom = True)
ax.tick_params(axis = 'y', which = 'both', direction  = 'in', left = True, right = True)
locmin = matplotlib.ticker.LogLocator(base=10.0,  subs=(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9))
ax.yaxis.set_minor_locator(locmin)
ax.yaxis.set_minor_formatter(matplotlib.ticker.NullFormatter())

plt.show()

Есть идеи, что может вызвать такое поведение?

Не работает график:
Not working graph

Рабочий график:
The working graph

Обновление: вот файл csv-нарушителя и минимальный код для воспроизведения проблемы.

Данные

Сценарий

Обновление 2 Джоди Климак указал на matplotlib.ticker.SymmetricalLogLocator () вместо LogLocator ().

Изменено

locmin = matplotlib.ticker.LogLocator(base=10, subs=(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9), numticks = 10)

на

locmin = matplotlib.ticker.SymmetricalLogLocator(linthresh=1, base=10, subs = (0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...