Estoy usando nube de palabras con algunos archivos txt. ¿Cómo puedo cambiar este ejemplo si quería 1) aumentar la resolución y 2) retire el vacío de la frontera.

#!/usr/bin/env python2
"""
Minimal Example
===============
Generating a square wordcloud from the US constitution using default arguments.
"""

from os import path
import matplotlib.pyplot as plt
from wordcloud import WordCloud

d = path.dirname(__file__)

# Read the whole text.
text = open(path.join(d, 'constitution.txt')).read()
wordcloud = WordCloud().generate(text)
# Open a plot of the generated image.
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
InformationsquelleAutor Bobo | 2015-02-28

2 Comentarios

  1. 44

    Usted no puede aumentar la resolución de la imagen en plt.show() ya que está determinado por su pantalla, pero puede aumentar el tamaño. Esto le permite a escala, zoom, etc. sin desenfoque. Para hacer esto pase dimensiones WordCloud, por ejemplo,

    wordcloud = WordCloud(width=800, height=400).generate(text)

    Sin embargo, esto sólo determina el tamaño de la imagen creada por WordCloud. Cuando se muestra este uso de matplotlib se escalan al tamaño de la trama del lienzo, que es (por defecto) alrededor de 800 x 600 y otra vez pierden calidad. Para solucionar esto, se necesita especificar el tamaño de la figura antes de llamar imshow, por ejemplo,

    plt.figure( figsize=(20,10) )
    plt.imshow(wordcloud)

    Haciendo esto puedo crear con éxito un 2000×1000 de alta resolución de la nube de palabras.

    Para tu segunda pregunta (la eliminación de la frontera) en primer lugar podríamos establecer la frontera a negro, por lo que es menos evidente, por ejemplo,

    plt.figure( figsize=(20,10), facecolor='k' )

    También puede reducir el tamaño de la frontera mediante el uso de tight_layout, por ejemplo,

    plt.tight_layout(pad=0)

    El código final:

    # Read the whole text.
    text = open(path.join(d, 'constitution.txt')).read()
    wordcloud = WordCloud(width=1600, height=800).generate(text)
    # Open a plot of the generated image.
    
    plt.figure( figsize=(20,10), facecolor='k')
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.tight_layout(pad=0)
    plt.show()

    Mediante la sustitución de las dos últimas líneas con la siguiente, se puede obtener el resultado final se muestra a continuación:

    plt.savefig('wordcloud.png', facecolor='k', bbox_inches='tight')

    Aumentar la resolución con la palabra en la nube y quitar vacío de la frontera

  2. -2

    Borrosa wordclouds – he estado luchando con esto. Para mi uso, me encontré con que es demasiado grande la diferencia en el tiempo entre la palabra más frecuente ocurrencias y aquellos con pocas apariciones a la izquierda de la parte inferior de recuento de palabras ilegibles. Cuando alcancé la más frecuente de cuenta para reducir el diferencial, todas las de baja frecuencia palabras eran mucho más legible.

Dejar respuesta

Please enter your comment!
Please enter your name here