Dessinez des caractères dans du texte à l'aide de Python et Matplotlib

王林
Libérer: 2023-04-29 19:31:05
avant
917 Les gens l'ont consulté

Le but de cet article est de vous aider à commencer à tracer des données en python. Nous allons créer un graphique à barres pour tracer la fréquence des caractères dans un fichier texte donné. Dans ce cas, le fichier texte contient du contenu de The Great Gatsby.

使用 Python 和 Matplotlib 在文本中绘制字符

Étape 1 : Créez votre environnement virtuel

L'environnement de ce projet sera plus petit. Les environnements virtuels vous permettent d'ajouter des fonctionnalités supplémentaires à votre espace de travail sans affecter le reste de votre ordinateur !

Créez un répertoire et ouvrez-le dans l'éditeur de code et le terminal (où vous exécutez la commande). Allons-y : deux fichiers, read.txt et wordcount.py.

Nous utiliserons wordcount.py pour analyser le texte dans read.txt.

Étape 2 : Lire le texte On peut commencer relativement simple,

$ python3 -m venv venv
$ source venv/bin/activate
Copier après la connexion

Tout d'abord, il importe notre bibliothèque de dessins et de tri

Deuxièmement, nous utilisons la fonction d'ouverture intégrée, qui nous permet d'ouvrir un fichier en lecture et en écriture

Ensuite, nous lisons le texte à l'intérieur du fichier et le stockons dans texte dans une variable

Enfin, on ferme le fichier puisque nous ne l'utilisons plus
  • C'est ainsi que nous « lisons » le fichier et stockons le contenu dans une variable Tout ce dont vous avez besoin.
  • Étape 3 : Analyser les caractères
  • La meilleure façon de suivre les caractères est d'utiliser un dictionnaire Python (appelé hashmap dans d'autres langages de programmation).
  • Les dictionnaires sont un moyen très utile de stocker des données. Tout comme un vrai dictionnaire, il contiendra une liste de « mots » que vous pourrez consulter pour voir les définitions.

En programmation, ce concept est généralisé aux paires "clé/valeur". Cela signifie que nous pouvons créer un dictionnaire et lorsque je demande au dictionnaire "a", il renverra le nombre total d'occurrences de "a".

Alors codons !

$ pip3 install matplotlib
Copier après la connexion

Récapitulons ce qui s'est passé ici.

Nous définissons d'abord un dictionnaire vide

Ensuite, nous utilisons le mot-clé def pour définir une fonction. Cette fonction prend une variable "char" et vérifie s'il s'agit d'un espace (espace, tabulation, nouvelle ligne). Vous pouvez ajouter d'autres critères à votre sélection, comme isalpha() pour déterminer si le caractère est la lettre

puis vérifier s'il est déjà dans le dictionnaire. S'il est dans le dictionnaire, il changera la valeur à la valeur précédente plus 1 (puisque nous comptons ce caractère), sinon il ajoutera une nouvelle entrée dans le dictionnaire avec un compte initial de 1

#🎜🎜 # Ensuite, nous parcourons chaque caractère de la variable texte, où "i" représente un caractère individuel, nous enregistrons et exécutons notre fonction pour les compter

    Enfin, nous alphabétisons le dictionnaire en utilisant le tri d'importation OrderdedDict# 🎜🎜#
  • Étape 4 : Dessinez-le !
  • Maintenant que notre ensemble de données est créé, organisons-le en axes et traçons-le !
  • Nous allons créer une liste pour représenter chaque axe
  • num_list = []
  • char_list = []

# 🎜🎜#Ces listes correspondront les unes aux autres, donc si l'élément 1 de char_list est "a", l'élément 1 de num_list sera la fréquence correspondante. Codons cela également.

import matplotlib.pyplot as plt # plot
from collections import OrderedDict # this will be used for sorting later

file = open('read.txt')
text = file.read()
file.close()
Copier après la connexion

Nous utilisons deux variables pour parcourir les paires clé/valeur dans le dictionnaire que nous avons créé, puis les ajoutons à notre liste de données.

Enfin, créons et enregistrons ce graphique à barres en utilisant matplotlib.

charDict = {} # dictionaries are defined by curly braces
def count_letter(character):
character = character.lower()
if character.isspace():
return
if character in charDict:
charDict[character] = charDict[character] + 1
else:
charDict[character] = 1

# loop through text
for i in text:
count_letter(i)

charDict = OrderedDict(sorted(charDict.items()))
Copier après la connexion

Tout d'abord, nous créons une nouvelle forme. Sur la photo, la fenêtre globale

Ajouter un tracé au graphique

Ajouter un graphique à barres en utilisant les données que nous avons sélectionnées

Télécharger l'image

#🎜 🎜#showimage

  • Il est temps de le tester
  • Utilisez le code ci-dessous pour exécuter votre fichier ! nous Préparez-vous aux résultats !
  • char_list = [] # character
    num_list = [] # frequency
    # create x and y axes
    for x,y in charDict.items():
    char_list.append(x)
    num_list.append(y)
    Copier après la connexion
  • Donc pour répondre à la question que j'ai posée au début de l'article, la lettre e est utilisée plus de 25 000 fois dans The Great Gatsby ! Ouah!

    Conclusion

    À la fin de cet article, j'espère que vous avez acquis une compréhension de matplotlib et de la science des données.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal