I have to make a histogram, that shows the word length frequency from a poem. I've got the frequency, but I can't represent it in a histogram. This is my code:
full = "Ej mi a kő! tyúkanyó, kend A szobában lakik itt bent? Lám, csak jó az isten, jót ád, Hogy fölvitte a kend dolgát! Itt szaladgál föl és alá, Még a ládára is fölszáll, Eszébe jut, kotkodákol, S nem verik ki a szobábol. Dehogy verik, dehogy verik! Mint a galambot etetik, Válogat a kendermagban, A kiskirály sem él jobban. Ezért aztán, tyúkanyó, hát Jól megbecsűlje kend magát, Iparkodjék, ne legyen ám Tojás szűkében az anyám. – Morzsa kutyánk, hegyezd füled, Hadd beszélek mostan veled, Régi cseléd vagy a háznál, Mindig emberűl szolgáltál, Ezután is jó légy, Morzsa, Kedvet ne kapj a tyúkhusra, Élj a tyúkkal barátságba’... Anyám egyetlen jószága."
vs = full.translate(string.punctuation)
vers = vs.lower().split()
c=[len(i) for i in vers] # gives [3, 3, 5, 5, 3, 6, 4, 4, 3, 5]
counts=[0]*max(c) # gives [0, 0, 0, 0, 0, 0]
for i in range(len(c)):
counts[c[i]-1]+=1 # adds 1 to each index of c[i] (we subtract 1 because of 0-based indices)
print(counts)
plt.hist(counts, 14)
What did I do wrong? The X and Y axis are inverted, it shows the word length opposive. :( Thanks in advance.