Как я упоминал в комментарии к другому ответу, поведение в вопросе происходит только на моем рабочем компьютере, а не на моем домашнем компьютере. Я не понял, является ли это браузером, версией Python или некоторыми другими библиотеками, но это не версия Bokeh.
Следующий код не имеет проблемы:
from bokeh.io import output_file, show
from bokeh.plotting import figure
import numpy as np
fig = figure()
fig.circle(x=[5,5,5,5,5], y=[-10,-5,0,1,2], size=10)
yticks = np.array([1, 5, 10, 50, 99])
ytick_loc = np.log(np.log(1 / (1 - yticks/100)))
ytick_loc = np.around(ytick_loc, 15)
fig.yaxis.ticker = ytick_loc
tick_labels = [str(ytick) for ytick in yticks]
fig.yaxis.major_label_overrides = dict(zip(ytick_loc, tick_labels))
output_file("test.html")
show(fig)
Конкретная строка, которую я добавил, была:
ytick_loc = np.around(ytick_loc, 15)
Отмечу, что округления до 16 цифр было достаточно для исправления одного из двух тиков с ошибками, но для исправления обоих потребовалось округление до 15. Я не знаю, насколько это общее решение, то есть будет ли оно работать для произвольных чисел с плавающей запятой, но это решило мою текущую проблему.