Maison  >  Article  >  développement back-end  >  Utilisez Python pour créer votre propre logo personnalisé en dix minutes

Utilisez Python pour créer votre propre logo personnalisé en dix minutes

不言
不言original
2018-05-07 13:41:491513parcourir

Cet article vous présente principalement des informations pertinentes sur la façon d'utiliser Python pour créer votre propre logo personnalisé en dix minutes. Il utilise principalement un nuage de mots pour obtenir cet effet. L'article le présente de manière très détaillée à travers un exemple de code, ce qui est très. utile pour tout le monde. Étudier ou travailler a une certaine valeur d'apprentissage de référence. Les amis qui en ont besoin peuvent jeter un œil ci-dessous

Avant-propos

Je crois que tout le monde. peut utiliser le nuage de mots. Ce n'est plus inconnu. Il est très simple à utiliser. Il suffit d'appeler directement le package wordcloud. Sa fonction principale est de générer des images basées sur les mots du texte et la fréquence des mots, à partir desquelles vous pouvez voir intuitivement la proportion de chaque mot.

Récemment, je voulais juste créer un logo personnel, j'ai donc décidé d'utiliser un nuage de mots pour le créer.

installation de wordcloud

pip install wordcloud

En utilisant pip pour installer, vous rencontrerez certainement un trou et une erreur peut être signalée pendant le processus d'installation , vous invitant à installer Microsoft Visual C++ 14.0, mais ce processus d'installation prend du temps.

Il existe une autre façon de le résoudre, qui consiste à télécharger le fichier whl correspondant et à l'installer.

Une fois le fichier téléchargé, cmd dans le dossier où se trouve le fichier whl, puis entrez la commande suivante :

pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl

utilisation du code wordcloud

Une fois l'installation réussie, nous commencerons immédiatement à créer nos images.

from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator

d = path.dirname(__file__)

# 读文本文件
text = open(path.join(d, 'data.txt')).read()

# 读取自定义图片
alice_coloring = np.array(Image.open(path.join(d, "pic.jpg")))

# 你可以通过 mask 参数 来设置词云形状
wc = WordCloud(background_color="white",max_words=2000, 
  mask=alice_coloring, max_font_size=60,random_state=102,scale=8,
  font_path="C:\Windows\Fonts\msyhbd.ttf").generate(text)

wc.generate_from_text(text)
print('开始加载文本')
# 改变字体颜色
img_colors = ImageColorGenerator(alice_coloring)
# 字体颜色为背景图片的颜色
wc.recolor(color_func=img_colors)
# 显示词云图
plt.imshow(wc, interpolation="bilinear")
# 是否显示x轴、y轴下标
plt.axis('off')
plt.show()
# 获得模块所在的路径的
d = path.dirname(__file__)
# 将多个路径组合后返回
wc.to_file(path.join(d, "h16.jpg"))
print('生成词云成功!')

Le contenu du texte ci-dessus a été collecté via un robot d'exploration. Il a exploré un article sur la science des données. Une fois que vous avez la source du texte, préparez simplement l'image que vous souhaitez générer un nuage de mots.

La configuration des paramètres de wordcloud est particulièrement importante pour les effets d'image. Ci-dessous, nous nous concentrons sur la signification des paramètres de wordcloud :

  • font_path : chemin de la police de chaîne, quelle que soit la police. doit être affiché. Écrivez le chemin de la police + le nom du suffixe, tel que : font_path = 'Heibody.ttf'

  • width: int (default=400) La largeur du canevas de sortie, la valeur par défaut. est de 400 pixels

  • hauteur : int (par défaut = 200) Hauteur du canevas de sortie, la valeur par défaut est de 200 pixels

  • prefer_horizontal : float (par défaut = 0,90 ) Composition horizontale des mots Fréquence d'occurrence, par défaut 0,9

  • masque : nd-array ou Aucun (par défaut=Aucun) Si le paramètre est vide, le nuage de mots sera dessiné normalement. Si le masque n'est pas vide, les valeurs définies de largeur et de hauteur seront ignorées et la forme sera remplacée par un masque. Les parties sauf le blanc ne seront pas dessinées et le reste servira à dessiner le nuage de mots.

  • scale : float (default=1) Agrandit la toile selon la proportion Si elle est définie sur 2, la longueur et la largeur seront le double de la toile d'origine.

  • min_font_size : int (default=4) La taille minimale de la police affichée

  • font_step : int (default=1) taille de l'étape de police, Si la taille du pas est supérieure à 1, cela accélérera l'opération mais peut conduire à des erreurs plus importantes dans les résultats.

  • max_words : nombre (par défaut=200) Le nombre maximum de mots à afficher

  • stopwords : ensemble de chaînes ou Aucun Le réglage nécessaire à bloquer S'il est vide, le STOPWORDS

  • background_color : valeur de couleur (default="black") couleur d'arrière-plan, tel que background_color='white', la couleur d'arrière-plan est blanc.

  • max_font_size : int ou None (default=None) La taille de police maximale affichée

  • mode : string (default=”RGB”) Lorsque le paramètre est "RGBA" et background_color n'est pas vide, le fond est transparent.

  • relative_scaling : float (default=.5) Corrélation entre la fréquence des mots et la taille de la police

  • color_func : callable, default=None Générer une nouvelle couleur function, si vide, self.color_func

  • regexp : string ou None (facultatif) Utilisez une expression régulière pour séparer le texte saisi

  • collocations : bool, default=True S'il faut inclure la collocation de deux mots

  • colormap: string ou matplotlib colormap, default="viridis" Attribuez aléatoirement une couleur à chaque mot, si spécifié color_func, ceci la méthode est ignorée.

Affichage des effets

Les photos utilisées sont les propres photos du blogueur.

——————fin——————

Recommandations associées :

Utilisez le socket Python pour envoyer la méthode de requête http(s)

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!

Déclaration:
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