bugfix> python > 投稿

式グラフとポイントの配列によって設定されたグラフを作成し、画像を返す必要があります。式グラフを作成するには、 sympy.plot を使用します 、およびポイントでグラフを作成するには、 matplotlib を使用します 。

コードの例を次に示します。

from os import remove
from matplotlib import pyplot as plt
from PIL import Image
from sympy import plot, symbols
def plot_graphic(x, y, expression, file_name):
    file = '{}.png'.format(file_name)
    x1, y1 = list(x), list(y)
    plt.plot(x1, y1)
    plt.savefig(file)
    plt.close()
    del y1
    img = Image.open(file)
    remove(file)
    yield img
    x = symbols('x')
    plot(expression.args[1], (x, x1[0], x1[-1]), show=False).save(file)
    img = Image.open(file)
    remove(file)
    yield img

x、yはジェネレーターです。これらの画像を1つに組み合わせるにはどうすればよいですか?

回答 1 件
  • 私は解決策を見つけました。 Sympyには、ポイントをプロットするためのメソッドがあります。 List2DSeries を作成する必要があります   append を使用して必要な処理を行い、他のグラフィックに追加するオブジェクト  方法。結果のコードを以下に示します。

    from os import remove
    from PIL import Image
    from sympy import plot, symbols
    from sympy.plotting.plot import List2DSeries
    def plot_graphic(x, y, expression, file_name):
        file = '{}.png'.format(file_name)
        x1, y1 = list(x), list(y)
        x = symbols('x')
        graph = plot(expression.args[1], (x, x1[0], x1[-1]), show=False, line_color='r')
        graph.append(List2DSeries(x1, y1))
        graph.save(file)
        img = Image.open(file)
        remove(file)
        return img
    
    

あなたの答え