2013-09-30 27 views
2

我是Python和Stackoverflow的新手。我有一個包含浮點數.txt文件看起來是這樣的:用pyplotlib打開並繪製數據

8.2178200e-02 

8.2173600e-02 8.2129400e-02 8.2209000e-02 8.2183000e-02 8.2098900e-02 8.2162500 E-02 8.2157700e-02 8.2177900e-02 8.2177600e-02 8.2088400e-02 8.2142900e-02 8.2179600e-02 8.2159200e-02 8.2144800e-02 8.2139000e-02 8.21212 00E-02 8.2157900e-02 8.2142600e-02 8.2190600e-02 8.2129500e-02 8.2125800e-02 8.2097500e-02 8.2087300e-02 8.2206800e-02 8.2175400e-02 8.2183300 E-02 8.2197400e-02 8.2129500e-02 8.2101600e-02 8.2117800e-02 8.2125900e-02 8.2131300e-02 8.2107600e-02 8.2146900e-02 8.2122400e-02 8.2111800 e-02 8.2156100e-02 8.2088500e-02 8.2135300e-02 8.2119700e-02 8.2100800e-02 8.2135700e-02 8.2126900e-02 8.2134000e-02 8.2111000e-02 8.2101600e-02 8.2108600e-02 8.2142900e-02 8.2091000e-02 8.2117700e-02 8.2061400e-02 8.2085200e-02 8.2080400e-02 8.2075400e-02 8.2064400e-02 8.2059700e-02 8.2098200e-02 8.2077200e-02 8.2138200e-02 8.2116300e-02 8.2092000e-02 8.2071900e-02 8.2092500e-02 8.2056900e-02 8.2108900e-02 8.2061300e-02 8.2064300e-02 8.2063900e-02 8.2120600e-02 8.2049500e-02 8.2087300e-02 8.2066800e-02 8.2074900e-02 8.2052400e-02 8.2093200e-02 8.2061800e-02 8.2043700e-02 8.2070500e-02 8.2056900e-02 8.2084000e-02 8.2075900e-02 8.2065900e-02 8.2054200e-02 8.2037400e-02 8.2040600e-02 8.2085500e-02 8.2029000e-02 8.2057000e-02 8.2045700e-02 8.2112600e-02 8.2068000e-02 8.2034900e-02 8.2045200e-02 8.2046400e-02 8.2067300e-02 8.2080500e-02 8.2021400e-02 8.2047300e-02 8。2060200e-02 8.2042900e-02 8.2065200e-02 8.2056100e-02 8.1990900e-02 8.2055700e-02 8.2030300e-02 8.2103400e-02 8.2092600e-02 8.1995200e-02 8.2075300 E-02 8.2001500e-02 8.2064000e-02 8.2033500e-02 8.2042800e-02 8.2037400e-02 8.2002000e-02 8.2057900e-02 8.2025100e-02 8.2038900e-02 8.2035200 e-02 8.2005700e-02 8.2016700e-02 8.2012800e-02 8.1984900e-02 8.2066200e-02 8.2029600e-02 8.2027400e-02 8.2012200e-02 8.2009400e-02 8.2024900e-02 8.2038700e-02 8.2034700e-02 8.2016200e-02 8.1964500e-02 8.2019400e-02 8.2010500e-02 8.2004100e-02 8.2057500e-02 8.2052300e-02 8.2004500e-02 8.1998400e-02 8.2011600e-02 8.2038400e-02 8.2002500e-02 8.2005700e-02 8.2065900e-02 8.1991200e-02 8.2039900e-02 8.2028200e-02 8.2027000e-02 8.2021300e-02 8.2019600e-02 8.2032900e-02 8.2011700e-02 8.2017400e-02 8.2069400e-02 8.1998400e-02 8.2059400e-02 8.1958300e-02 8.1995800e-02 8.2018500e-02 8.1973400e-02 8.2008800e-02 8.1995900e-02 8.1989400e-0 2 8.1991800e-02 8.2000600e-02 8.2040400e-02 8.2035700e-02 8.1987800e-02 8.2027400e-02 8.2010800e-02 8.1991300e-02 8.1999400e-02 8.1926800e- 02 8.2021100e-02 8.1967800e-02 8.1992600e-02 8.2022200e-02 8.1933100e-02 8.1998900e-02 8.2004300e-02

如何建立一個程序,把這個數據變成一個字符串,我需要用它來變頻cy響應並使用Matplotlib繪製數據?數據量將是未知的。對於y軸,繪製數據點。對於x軸,數字增加1,[0,1,2,3,4,5,6 ... n]。如果有更好的實施方法,請詳細說明。謝謝!

+2

你能告訴我們你已經嘗試了什麼?如果你有一些你需要修改的代碼,而不是規範列表,你會得到更好的迴應。 – tacaswell

+1

歡迎來到SO!這裏的人可能很刺眼,不要個人承擔。請閱讀http://stackoverflow.com/help – tacaswell

回答

1

使用numpy將數據讀入浮點數組,並將該數據與範圍(len(your_array))進行比較,顯示該圖。

1

爲了避免加載整個文件到內存中,你可以在這樣的時刻,閱讀過一個:

import matplotlib.pyplot as plt 
with open('number_file.txt', 'r') as f: 
    number_string = f.read(13) # 13 characters in each number 
    x_index = 0 
    while number_string != '': 
     plt.plot([x_index], [float(number_string)], 'ob') 
     # print(x_index, number_string) 
     f.read(1) # this throws away the extra space 
     number_string = f.read(13) 
     x_index += 1 

plt.show() 

這是假設的數量和間距始終在正確的格式。

+0

該文件可以在下面下載。數據量太大,我不能使用這種方法。感謝你的支持。 https://www.facebook.com/ajax/messaging/attachment.php?attach_id=29169ed0f42f81f7bbef1aae181fe1be&mid=mid.1380596041299%3Adfd7a8c895556c9101&hash=AQBvYsz4I5mkTAQu –

+0

我寧願保留此頁上的所有信息,以便其他幫助者或人員可以看到有相同的問題 嘗試複製數據文件的前幾行並將其粘貼到問題中。選擇它並按工具欄中的{}圖標進行格式化。大多數大型數據文件在每一行都有一個條目,如果是這樣的話,它會簡化解決方案。 否則,上傳整個文件的唯一方法是在外部網站上,例如[其中一個](http://www.smashingapps.com/2009/05/22/6-more-free-file-hosting-websites -that-would-be-useful.html),然後在你的問題中鏈接到它。 – Justin

+0

我已按照您的指示發佈。我的數據文件中只有幾行被複制。它是一個大型的數據文件。但我認爲它應該沒問題,因爲我的教授在他的matlab研究論文中用它作爲例子。 –

1

您提到了有關頻率信息的信息。如果您正在尋找功率譜密度圖,請查看matplotlib.pyplot.psd

例如,使用數據您發佈以上:

import numpy as np 
import matplotlib.pyplot as plt 

data = np.loadtxt('yourdata.txt') 
plt.psd(data) 
plt.show() 

enter image description here