У меня есть файл, содержащий зарегистрированные события. Каждая запись имеет время и латентность. Я заинтересован в построении кумулятивной функции распределения задержек. Меня больше всего интересуют задержки хвоста, поэтому я хочу, чтобы график имел логарифмическую ось y. Меня интересуют задержки в следующих процентилях: 90-е, 99-е, 99,9-е, 99,99-е и 99,999-е. Вот мой код до сих пор, который генерирует обычный график CDF:
# retrieve event times and latencies from the file
times, latencies = read_in_data_from_file('myfile.csv')
# compute the CDF
cdfx = numpy.sort(latencies)
cdfy = numpy.linspace(1 / len(latencies), 1.0, len(latencies))
# plot the CDF
plt.plot(cdfx, cdfy)
plt.show()
Я знаю, на что я хочу, чтобы этот сюжет выглядел, но я изо всех сил пытался его получить. Я хочу, чтобы это выглядело (я не создал этот сюжет):
Сделать логарифмическую ось x просто. Ось Y - это проблема, которая дает мне проблемы. Использование set_yscale('log')
не работает, потому что оно хочет использовать полномочия 10. Я действительно хочу, чтобы ось y имела те же метки, что и этот график.
Как я могу получить мои данные в логарифмический график, подобный этому?
EDIT:
Если я установил yscale в 'log' и ylim до [0,1, 1], я получу следующий график:
Проблема заключается в том, что типичный график масштаба шкалы в наборе данных в диапазоне от 0 до 1 будет фокусироваться на значениях, близких к нулю. Вместо этого я хочу сосредоточиться на значениях, близких к 1.