私は実際の問題を理解しています。 1つのExcelワークブックに複数のワークシートがあり、すべて1つのデータフレームテーブルと1つのチャートが含まれています。私はすべての異なるデータフレームを実行し、各Excelワークシートに書き出し、各グラフをプロットし、グラフをpngファイルに保存し、openpyxlを使用して各ワークシートに画像をロードする方法でコードを整理しました。Matplotlib/Openpyxl - 複数の画像を別のワークシートに貼り付けることができます。
ここのキーは、どのようにしてファイルをブックに保存するかのようです。たとえば、最後のイメージを最後のワークシートにアップロードした後にxfile.save( 'bikes.xlsx')と入力すると、最後のイメージのみが表示され、他のイメージは他のワークシートには表示されません。最初のイメージがワークシートにロードされた後にタイプが保存される場合、Excelは最初のワークシートのイメージを表示します。各画像がワークシートにロードされた後に保存関数を置くと、最後の画像のみが最後のワークシートに表示されます。
#Plot chart 1
df3.plot(x='Length', y=['types of cats'], figsize=(8,4))
plt.savefig('Typesofcats.png')
#Write PNG file to existing worksheet
from openpyxl import Workbook
from openpyxl.drawing.image import Image
xfile1 = openpyxl.load_workbook('Things.xlsx')
sheet1 = xfile1.get_sheet_by_name('Types of Cats')
img1 = Image('Typesofcats.png')
sheet1.add_image(img1, 'I6')
xfile.save('Things.xlsx')
#Plot chart 2
df5.plot(x='Length', y=['Types of dogs'], figsize=(8,4))
plt.savefig('Typesofdogs.png')
#Write PNG file to existing worksheet
from openpyxl import Workbook
from openpyxl.drawing.image import Image
xfile2 = openpyxl.load_workbook('Things.xlsx')
sheet2 = xfile2.get_sheet_by_name('Types of dogs')
img2 = Image('Typesofdogs.png')
sheet2.add_image(img2, 'I6')
xfile2.save('Things.xlsx')
#Plot chart 3
df6.plot(x='Length', y=['Types of pigs'], figsize=(7,3))
plt.savefig('Typesofpigs.png')
#Write PNG file to existing worksheet
from openpyxl import Workbook
from openpyxl.drawing.image import Image
xfile3 = openpyxl.load_workbook('Things.xlsx')
sheet3 = xfile2.get_sheet_by_name('Types of pigs')
img3 = Image('Typesofpigs.png')
sheet3.add_image(img3, 'F6')
xfile3.save('Things.xlsx')
ファイルの保存と再オープンのようです。ファイルを開くと画像が削除されます。 –