1

少し助けが必要です。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

4

0 に答える 0