Python 2.7 を使用して、Matplot によって生成された画像を PyScripter から Python の Google シートに挿入しようとしています。これは、csv からの開始データです。
x Date orcl
0 10/17/2016 37.685646
20 11/14/2016 38.679703
40 12/13/2016 40.116657
60 1/12/2017 38.732384
80 2/10/2017 40.303417
100 3/13/2017 42.072063
120 4/10/2017 43.662434
140 5/9/2017 45.131077
160 6/7/2017 45.051693
180 7/6/2017 48.47522
200 8/3/2017 50.032654
220 8/31/2017 50.132263
240 9/29/2017 48.160038
260 10/27/2017 50.880001
280 11/27/2017 48.880001
インポートは次のとおりです。
import pandas as pd
import statsmodels.api as sm
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.style.use('ggplot')
ファイルからデータを取得し、プロットを生成します。
file = pd.read_csv('orcl.csv')
x = file.iloc[ :, -3]
y = file.iloc[ :, -1]
m, b = np.polyfit(x, y, 1)
results = sm.OLS(y,x).fit()
print ('results are: ', (results))
fig, ax = plt.subplots()
plt.plot(x, y, '.', label = None)
plt.plot(x, m*x + b, '-',label='Regression Line')
ax.scatter(x, y)
ax.set_xlabel(r'days_from_start', fontsize=15)
ax.set_ylabel(r'stock_price', fontsize=15)
ax.grid(True)
fig.tight_layout()
plt.legend()
plt.savefig("orcl.png", bbox_inches='tight')
plt.show()
[ツール] > [オプション] > [IDE オプション] > [Postmortem on exception] でデバッグをオフにしていても、プロット ウィンドウを閉じるまで Pyscripter がデバッグ セッションでハングアップします。このコードはプロットを閉じません:
plt.close()
ExecJS に問題があります:
import execjs
# execjs from here: https://pypi.python.org/pypi/PyExecJS
# javascript from here: https://stackoverflow.com/questions/
#43664483/insert-image-into-google-sheets-cell-using-google-sheets-api
ctx = execjs.compile( """ {
var ss=SpreadsheetApp.getActiveSpreadsheet()
var formulaSheet = ss.getSheetByName("orcl"); '''tab 'orcl' is present.
var formulaCell = formulaSheet.getRange("B5");
formulaCell.setFormula('=IMAGE("orcl.png",4,100,200)')
} #http://finviz.com/fut_chart.ashx?t=ES&p&p=m5&s=m
""")
import execjs.runtime_names
jscript = execjs.get(execjs.runtime_names.JScript)
jscript.eval(ctx)
Python は、「例外、属性エラー、コンテキストに属性 'strip' がありません」と言います。
どんな助けでも感謝します。