Strumenti Utente

Strumenti Sito


distribuzione_delle_frequenze_in_scala_logaritmica

Questa è una vecchia versione del documento!


Distribuzione delle frequenze in scala logaritmica

Il codice seguente traccia il grafico della distribuzione delle frequenze in scala logaritmica. Le rr. 16-17 creano un 'subplot' denominato 'ax'; le rr.18-19 definiscono la scala di questo elemento come logaritmica; la r. 20 traccia, in blu, i punti relativi ai valori di frequenza osservati. Le righe 21-23 tracciano, in rosso, una retta che corrisponde al modello ideale secondo la legge di Zipf con parametri C=5850,7 e a=1,03372.

import codecs
import re
import matplotlib.pyplot as plt
import scipy
file=codecs.open('Testi/collodi_pinocchio.txt', encoding='iso-8859-1', mode='r')
testo=file.read()
testo=testo[1758:]
testo=re.sub("'","' ", testo)
testo=re.sub('[\.,;:\-?!]{1}','',testo)
testo=testo.lower()
testo=testo.split()
fd=[testo.count(i) for i in set(testo)]
fd.sort(reverse=True)
V=len(set(testo))
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.set_xscale('log')
ax.set_yscale('log')
ax.plot(range(1,V+1),fd, 'b.')
x=scipy.arange(1,V+1)
y=5850.7/(x**1.03372)
ax.plot(x,y, 'r-')
plt.show()

Dovrebbe prodursi un grafico di questo tipo:

distribuzione_delle_frequenze_in_scala_logaritmica.1621495276.txt.gz · Ultima modifica: 2021/05/20 07:21 da 127.0.0.1