リスト内で一連のチャートを収集し、すべてを1回でExcelに出力しようとしています。グラフオブジェクトのリストですが、すべてのプロットは表示されません
リストにはすべてのチャートが「matplotlib.figure.Figure at(example)0xb8eae80」と表示されていますが、すべて表示されるわけではありません。 progが実行されると、それらはすべてiPython(Spyderの)コンソールに表示されます。
iPythonでlist [i]を使って個別に表示しようとすると、いくつかのグラフが表示されますが、いくつかのグラフは表示されません(同じグラフはありません)。
Excelに出力する場合、「欠落」チャートはデフォルトサイズの空白キャンバスを持つため、XLはチャートの存在に関するいくつかの情報を得ていますが、「figsize」情報も取得できません。
以下の例のコードでは不足しているチャートは、(その簡単な例、私はそれがより良いスクリプト可能実現)複数のラインプロットとチャートの任意の助け
おかげです。 (私の元のコードと同じ問題を抱えている)
例コード:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import xlwings as xw
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
xdf = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')) # splits out list into components
xdf = xdf.cumsum()
figlist = [] # set up list to collect charts (a list of objects)
fig = plt.figure()
xdf.A.plot(figsize = (9,5), grid=True) #plots individual column
plt.axhline(0,lw=2, color = "black")
plt.title('A')
figlist.append(fig)
fig = plt.figure()
xdf.B.plot(figsize = (9,5), grid=True) #plots individual column
plt.axhline(0,lw=2, color = "black")
plt.title('B')
figlist.append(fig)
fig = plt.figure()
xdf.C.plot(figsize = (9,5), grid=True) #plots individual column
plt.axhline(0,lw=2, color = "black")
plt.title('C')
figlist.append(fig)
fig = plt.figure()
xdf.D.plot(figsize = (9,5), grid=True) #plots individual column
plt.axhline(0,lw=2, color = "black")
plt.title('D')
figlist.append(fig)
fig = plt.figure()
xdf.plot(figsize = (9,5), grid=True) #plots all columns on same chart
plt.axhline(0,lw=2, color = "black")
plt.title('All')
figlist.append(fig)
# output all charts to XL
xw.Workbook() # open new workbook
for i in range(len(figlist)):
plotno = 'Plot' + str(i)
plot = xw.Plot(figlist[i])
plot.show(plotno, left=30, top=(i*500+20))
問題が解決しました。多くの方に感謝します。私の誤った方法がチャートの一部ではなく、最後のチャートではうまくいかなかった理由は何ですか? – johnb
いいえ、私はパンダとマトラプラブが一緒にフードの下でどのように動作するのかは十分に分かりませんが、[this](http://stackoverflow.com/questions/19555525/saving-plots-axessubplot-generated-from-python-pandas -with-matplotlibs-savefi)は同じエラーを記述します。 –