Kayıtlı olayları içeren bir dosyam var. Her girişin bir zaman ve gecikme vardır. Gecikmelerin kümülatif dağılım fonksiyonunu çizmekle ilgileniyorum. Ben kuyruk gecikmeleri ile ilgileniyorum, bu yüzden arsa logaritmik y eksenine sahip olmak istiyorum. Şu persentillerdeki gecikmelerle ilgileniyorum: 90, 99, 99,9, 99.99 ve 99.999. İşte düzenli CDF arsa üretir şimdiye kadar benim kodudur: Bir toplu dağıtım işlevinin logaritmik grafiği matplotlib içinde
# 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()
Ben arsa gibi görünmek istediğini biliyorum, ama bunu elde etmek için mücadele ettik.
x ekseni logaritmik basittir yapma: Ben (bu arsa üretmek vermedi) böyle bakmak istiyorum. Y ekseni bana sorun çıkarıyor. set_yscale('log')
kullanmak, 10'uncu güç kullanmak istediği için işe yaramıyor. Y ekseninin, bu çizim ile aynı taslaklara sahip olmasını gerçekten istiyorum.
Verilerimi bu gibi bir logaritmik tabloya nasıl alabilirim?
DÜZENLEME:
I 'log için yScale ve İlim ayarlanırsa [0,1, 1], aşağıdaki grafik elde:
sorun, tipik olmasıdır 0 ile 1 arasında değişen bir veri kümesinde log ölçeği çizimi sıfıra yakın değerlere odaklanacaktır. Bunun yerine, 1 değerine yakın değerlere odaklanmak istiyorum. 0
Set_yscale ('symlog') 'ile ne tür sorunlarla karşılaşıyorsunuz? – mziccard
Etiket konumlarının ayarlanması tamamen farklı bir hikaye. Ölçeğin logaritmik değerini y ekseninde yapabileceğinizi varsayalım (bu, eğer 0 ya da -ve numaranız varsa, yanlış çalışıyorsa) ve etiketleri belirleyiniz. –
Günlük y-ekseni * "çalışmıyor" derken ne demek istiyorsun *? Bize gösterebilir misin? Bir log ölçeğinde 0'ı temsil etmek matematiksel olarak mümkün değildir, bu nedenle ilk değerin maskelenmesi veya çok küçük bir pozitif sayıya kırpılması gerekir. Bu davranışı, '' mask '' veya ''clip' '' false =' parametresi olarak ax.set_yscale() 'olarak değiştirerek kontrol edebilirsiniz. –