2017-05-27 124 views
1

python3のwordcloudモジュールで作業していて、クラウドの周りに空白を入れずにワードクラウドのイメージしか得られないという人物を保存しようとしています。私はstackexchangeでここで言及した多くのダニを試したが、うまくいかなかった。以下は、私のデフォルトのコードです。これは、左右の空白を取り除くことができますが、上下の空白を取り除くことはできません。 ax = plt.axes([0,0,1,1])の他の2つの値を0にすると、空の画像が得られます。プロットの周りに空白がないPythonのワードクラウド

wordcloud = WordCloud(font_path=None, width = 1500, height=500, 
      max_words=200, stopwords=None, background_color='whitesmoke', max_font_size=None, font_step=1, mode='RGB', 
      collocations=True, colormap=None, normalize_plurals=True).generate(filteredText) 

import matplotlib.pyplot as plt 
fig = plt.figure() 
ax = plt.axes([0,0,1,1]) 
plt.imshow(wordcloud, interpolation="nearest") 
plt.axis('off') 
plt.savefig('fig.png', figsize = (1500,500), dpi=300) 

誰かが私を助けてくれますか?

答えて

1

wordcloudは画像、つまりピクセルの配列です。 plt.imshowはデフォルトでピクセルを正方形にします。これは、画像のアスペクト比がFigureと同じでない場合を除いて、上下左右に空白があることを意味します。

は、おそらく、望ましくない

plt.imshow(wc, interpolation="nearest", aspect="auto") 

その結果が、aspect="auto"を設定し、固定アスペクト比を解放することができます。

enter image description here

それでは、あなたが本当に望むことは画像サイズにフィギュアのサイズを適応させることです。 画像は1500×500ピクセルなので、100のdpiと15 x 5インチの図形サイズを選択できます。終わり

wc = wordcloud.WordCloud(font_path=None, width = 1500, height=500, 
      max_words=200, stopwords=None, background_color='whitesmoke', max_font_size=None, font_step=1, mode='RGB', 
      collocations=True, colormap=None, normalize_plurals=True).generate(text) 

import matplotlib.pyplot as plt 

fig = plt.figure(figsize=(15,5), dpi=100) 
ax = plt.axes([0,0,1,1]) 
plt.imshow(wc, interpolation="nearest", aspect="equal") 
plt.axis('off') 
plt.savefig(__file__+'.png', figsize=(15,5), dpi=100) 
plt.show() 

enter image description here


matplotlibのは、とにかく最善の選択ではないかもしれない使用。

from scipy.misc import imsave 
imsave(__file__+'.png', wc) 
+0

ありがとうございます@ImportanceOfBeingErnestこれは私が望むすべてのものです。私はscipy.misc import imsave imsave(__ file __ + '。png'、wc)から使用しています。 –

関連する問題