2017-09-09 11 views
1

線形のトレンドラインの方程式をプロットに表示する例がたくさんありますが、上位のものを表示するための式は見つかりませんでした。私はそれが似ていると思ったが、私は間違いを続けている。私はそれが私のプリントステートメントでzの目的を理解していないことと関係していると感じています。ここに私のコードは、ありがとう!プロットの二次トレンド線方程式?

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 


df=pd.read_csv('myfile', delimiter=',', usecols=[1,4], names=['Time','Position']) 

plt.figure(figsize=(9,6)) 
plt.suptitle('') 

x=df['Time'] 
y=df['Position'] 
plt.subplot(1,1,1) 
plt.tick_params(labelsize=6) 
plt.plot(x, y, 'o') 

z = np.polyfit(x, y, 2) 
p = np.poly1d(z) 
plt.plot(x,p(x),"r--") 

plt.xlabel('Time (s)', fontsize=9) 
plt.ylabel('Position (mm)', fontsize=9) 
plt.title('13.087 Degree Incline', fontsize=10, weight='bold') 
plt.legend(loc=2, prop={'size': 6}) 
plt.tight_layout() 

print "y=%.6fx^2+%.6fx+(%.6f)"%(z[0],z[1]) 

plt.show() 

編集: python2で実行しているときのpython3で実行しているとき、私は

File "scriptname.py", line 27, in <module> 
print "y=%.6fx^2+%.6fx+(%.6f)"%(z[0],z[1]) 
TypeError: not enough arguments for format string 

私がゲット:原則として

File "scriptname.py", line 27 
print "y=%.6fx^2+%.6fx+(%.6f)"%(z[0],z[1]) 
          ^
SyntaxError: invalid syntax 

答えて

0

をエラーメッセージが間違っているものを説明するのはかなり良いです。 文字列"y=%.6fx^2+%.6fx+(%.6f)"には3つの書式指定子があり、後で2つの引数のみを指定します(%(z[0],z[1])

解決策は、もちろん書式指定子と同じ数の引数を指定します。

のpythonのように あなたが印刷 機能を使用したら、あなたは最終的に、同じエラーで終わるだろうのpython3で
print "y=%.6fx^2+%.6fx+(%.6f)"%(z[0],z[1],z[2]) 

print(arg)の代わりに、印刷文のprint arg 2.

print ("y=%.6fx^2+%.6fx+(%.6f)"%(z[0],z[1],z[2])) 
関連する問題