Bonjour
En cours de finalisation d'un petit projet de crypto,
Je suis en train d'achever un module sur l'analyse des
fréquences de caracteres .
Mon travail principal est achevé avec un affichage en %, mais j'ai trouvé sur le web
une application qui affiche le resultat sous forme graphique (histogramme) qui est
bien plus parlant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import numpy as np
import matplotlib.pyplot as plt
 
text_file = 'fr-txt.txt'
 
letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# Initialize the dictionary of letter counts: {'A': 0, 'B': 0, ...}
lcount = dict([(l, 0) for l in letters])
 
# Read in the text and count the letter occurences
for l in open(text_file).read():
    try:
        lcount[l.upper()] += 1
    except KeyError:
        # Ignore characters that are not letters
        pass
# The total number of letters
norm = sum(lcount.values())
text_file
fig = plt.figure()
ax = fig.add_subplot(111)
# The bar chart, with letters along the horizontal axis and the calculated
# letter frequencies as percentages as the bar height
x = range(26)
ax.bar(x, [lcount[l]/norm * 100 for l in letters], width=0.8,
       color='g', alpha=0.5, align='center')
ax.set_xticks(x)
ax.set_xticklabels(letters)
ax.tick_params(axis='x', direction='out')
ax.set_xlim(-0.5, 25.5)
ax.yaxis.grid(True)
ax.set_ylabel('Letter frequency, %')
plt.show()
MAIS

Comme vous pouvez le voir, Il fait appel a des bibliothèques Plot, Numpy Mathplotlib.
L’intégration de ce module dans un cadre Tkinter me semble complexe , en tout cas pas facile (pour moi):
J'envisage une fenêtre a deux frames
- le premier pour encadrer les actions nécessaires au traitement des strings
- le second pour contenir le graphe plot

tous mes essais jusqu’à présent n'aboutissent a rien
Connaissez vous ce moyen ?. Merci de votre attention.