少し助けが必要です。matplotlib で作成されたグラフがあり、最後の要件は、会社のロゴ (.PNG ファイル) をグラフに表示することです。ただし、このタスクには Python Image Library (PIL) を使用できないため、pypng を使用してロゴを読み取っていますが、多くの検索を行った後、figmimage で使用するために画像を matplotlib の「互換性のある」画像に変換する方法が見つかりません。 (チャートにロゴを重ねるため)。
pypng docs は、numpy を使用して matplotlib で使用するために画像を変換する方法を示していますが、その例は Python 2.x であり、Python 3 で使用するために例 (itertools.imap) を変換する方法がわかりません)。
これが私がこれまでに持っているものです:
import png
import numpy
from matplotlib.figure import Figure
fig = Figure(figsize=(8.5, 4.1))
r = png.Reader('/home/jm/Desktop/logo.png')
r.read()
rows, cols, pngdata, d = r.asFloat()
rows=28, cols=500, d['planes']=4 これは png が RGBA 形式、つまり . ピクセル行ごとに 4 つの値。
# My poor attempt to map the pypng image to numpy
img = numpy.reshape(pngdata, (rows, cols, d['planes']))
fig.figimage(img, 0, 0)
あなたが疑問に思っている場合に備えて、グラフにゴミのピクセルが表示されます...ドキュメントを読みましたが、明らかに何かが欠けていますが、何がわかりません。
どんな助けでも大歓迎です!
ありがとう、
JM