2014-07-26 45 views
0

請幫助這個......我無法得到線的情節。它會繪製x,y散點圖,但不會出現趨勢線。Matplotlib趨勢線代碼..將運行,但不會繪製p(x)線....我不知道什麼是錯的。

import numpy as np 
import matplotlib.pyplot as fs 
name = ["SlowFast","Bedrock","MeanSlow","hAgDenkm","hSinDenkm","hAgSl","hAgFa","hSinSl","hSinF","LogSlowFast","LogBedrock","LogMeanSlow","LoghAgDenkm",# 
      "LoghSinDenkm","LoghAgSl","LoghAgFa","LoghSinSl","LoghSinFa"] 
data = np.genfromtxt('C:\Users\Ben\Documents\R\LWM_Study\LWM52714BigRun.csv',dtype = 'float' , delimiter = ',' , skip_header = 0, skip_footer= 20 , names = name) ### data array### 

x=data["LogSlowFast"] 
y=data["LoghSinDenkm"] 
z = np.polyfit(x,y,1) 
p = np.poly1d(z) 
fs.plot(x,y,'ro',x,p(x),'r--') 
fs.ylabel("a") 
fs.xlabel("LogSlowFast") 
fs.show() 

print x,y,z,p 
+0

你能向我們展示print語句的輸出嗎? – Gabriel

回答

1

必須有與您的數據xy有些不妥。如果你有一些人爲的數據替換代碼的第一部分:

x=np.linspace(0,1,100) 
y=x**2 
z = np.polyfit(x,y,1) 
p = np.poly1d(z) 
fs.plot(x,y,'ro',x,p(x),'r--') 
fs.ylabel("a") 
fs.xlabel("LogSlowFast") 
fs.show() 

您將獲得:

enter image description here

所以,除了數據都保持在你的代碼。

有關數據講的事情:

  • x.dtype
  • y.dtype
  • 是否有可能將NaN任何的數據?
  • p

我的猜測是,你有一個nan或可能在數據的inf。這將使趨勢線也變爲nan,因此不可見。

也許要驗證的第一點是p的內容是合理的。

+0

感謝您的幫助...我仍然在CSV中添加了標題,並通過填充SKip標頭來修復問題== 20 ...現在我只是想弄清楚如何從我的數據中獲取zeos –

相關問題