1

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' がありません」と言います。

どんな助けでも感謝します。

4

1 に答える 1