matplotlib.pyplot.imshow
で視覚化している(n、m)配列があります。このデータを何らかのタイプのラスターグラフィックスファイル(PNGなど)に保存して、次のようにします。
imshow
で示されるものですimshow
のinterpolation='nearest'
には興味がありません。)これどうやってするの?
interpolation='nearest'
を使用し、matplotlibに(しぶしぶ)軸、空白などを強制的にオフにすることで、これを行うことができるコードを見てきました。 PIL?結局のところ、私は基礎となるデータを持っています。基になる配列の各要素のRGB値を取得できる場合は、PILで保存できます。 imshow
からRGBデータを抽出する方法はありますか?配列の値をRGB値にマッピングする独自のコードを作成できますが、ホイールを再発明したくありません。その機能はmatplotlibに既に存在するからです。
すでに推測したように、図を作成する必要はありません。基本的に3つのステップが必要です。データを正規化し、カラーマップを適用し、画像を保存します。 matplotlibは、必要なすべての機能を提供します。
import numpy as np
import matplotlib.pyplot as plt
# some data (512x512)
import scipy.misc
data = scipy.misc.lena()
# a colormap and a normalization instance
cmap = plt.cm.jet
norm = plt.Normalize(vmin=data.min(), vmax=data.max())
# map the normalized data to colors
# image is now RGBA (512x512x4)
image = cmap(norm(data))
# save the image
plt.imsave('test.png', image)
上記のコードは単一のステップを説明していますが、imsave
に3つのステップすべてを実行させることもできます(imshow
と同様):
plt.imsave('test.png', data, cmap=cmap)
結果(test.png):