投稿

ラベル(numpy)が付いた投稿を表示しています

matplotlib: 2つのグラフを一度に描画する

イメージ
複数のグラフを表示する 1つまたは2つのファイルから2種類のデータを描画する 縦軸が共通の場合と、異なる場合 例えば以下のようなデータが data.csv という名称で存在するとする。 id,value1,value2 1,0.5,10.4 2,5.4,30.9 3,7.9,80.9 4,10.2,140.9 5,13.2,221.3 同じ軸でプロットしてみる。単に2発Plotすればいいだけ。 こちらの記事も参照 import pandas as pd import matplotlib . pyplot as plt df = pd . read_csv ( 'data.csv' , header = 0 , index_col = 0 ) plt . plot ( df . index , df [ 'value1' ] , marker = 'o' ) plt . plot ( df . index , df [ 'value2' ] , marker = 'x' ) plt . show ( ) 簡単に表示はできるが、異なるスケールであるため青色のプロットの変化が見づらくなってしまっている。 このようにスケールが異なる場合には縦軸を変更すると良い。 # サブプロット (分割プロット) コマンドで軸を取得 fig , ax1 = plt . subplots ( ) # ax1 と Xが共通な軸 = y軸を作成 ax2 = ax1 . twinx ( ) # ax1, ax2に対してプロットを実施 # 区別をつけるために色分け、凡例を出すためにlabelを指定。 ax1 . plot ( df . index , df [ 'value1' ] , color = 'red' , label = '1st line' ) ax2 . plot ( df . index , df [ 'value2' ] , color = 'blue' , label = '2nd line' ) # 各Y軸...

Numpy: 2次元配列を画像として保存したい

 2次元のnumpy行列を白黒画像データとして保存する PIL.Image で利用可能な fromarray() を利用します。 未インストールの場合下記でインストールします。 pip install pillow 実際の画像保存は以下のようになります。 from PIL import Image import numpy as np data = np.zeros((512, 512), np.uint8) img = Image.fromarray(data) img.save('test.png')

Numpy: Grey画像 or 単なる2次元配列からRGB画像を生成したい

3つの異なる配列からRGB画像データを作成する 1つのGrey画像 (greyscale image) から RGB 画像データを生成する dstack を利用し、2次元配列 = greyscale画像からRGB画像を生成します。 以下は説明のためnp.zerosで作成していますが、実際は各 r, g, b に必要なデータを入れてください。各Channelの配列サイズは同じである必要があります。 import numpy as np r = np.zeros((512, 512), np.uint8) g = np.zeros((512, 512), np.uint8) b = np.zeros((512, 512), np.uint8) rgb = np.dstack((r, g, b)) 1つの2次元行列からRGB画像に拡張する場合は以下です。 grey = np.zeros((512,512), np.uint8) rgb = np.dstack((grey,)*3) 画像として保存するのであれば以下。 from PIL import Image Image.fromarray(rgb).save('test.png')