2016-04-01 11 views
0

私はいくつかのデータ、特に2つの列を持つtxtファイルで遊んでいます。最初の列は(dd/mm/yyyy)の形式の日付で、2番目の列は値です。 2つの列はコンマではなくスペースで区切られています。単純なPythonプロット - 通貨と日付

私は単純なプロットをプロットしようとしていますが、カントは2つの列を分けるようです。

import numpy as np 
    import matplotlib.pyplot as plt 

    with open("EURGBP DATA.txt") as f: 
     data = f.read() 

    data = data.split('\n') 

    x = [row.split()[0] for row in data] 
    y = [row.split()[1] for row in data] 

    fig = plt.figure() 

    ax1 = fig.add_subplot(111) 

    ax1.set_title("Plot DAta")  
    ax1.set_xlabel('x') 
    ax1.set_ylabel('y') 

    ax1.plot(x,y, c='r', label='the data') 

    leg = ax1.legend() 

    plt.show() 

私は思った日付の形式が好きではありませんが、私は周りを回っています!

おかげ

+0

は、コンバータと 'np.genfromtxt'を使用してみてください日付列の場合。このようなもの:http://stackoverflow.com/a/13872188/588071 – tom

+0

"EURGBP DATA.txt"ファイルのサンプルデータを表示できます – hemraj

答えて

2

あなたのファイルはこのように見える場合:

2015/10/12 1 
2015/10/13 2 
2015/10/14 10 

あなたがxticksを操作するために、このコードを使用することができます。

import numpy as np 
import matplotlib.pyplot as plt 


with open("EURGBP DATA.txt") as f: 
    data = f.read() 

    data = data.split('\n') 

    x = [row.split()[0] for row in data] 
    y = [row.split()[1] for row in data] 

index = [i for i,val in enumerate(x)] 

fig = plt.figure() 
ax1 = fig.add_subplot(111) 
ax1.set_title("Plot DAta")  
ax1.set_xlabel('x') 
ax1.set_ylabel('y') 
ax1.set_xticklabels(x) 
ax1.plot(index ,y, c='r', label='the data') 
leg = ax1.legend() 
plt.locator_params(nbins=len(index)-1) 
plt.show() 
+0

x = [row.split([ 0] for data in row] IndexError:リストインデックスが範囲外です。 ' 私が以前に持っていたものです。これが私が混乱している理由です –

+0

あなたは行を削除しました:data = data.split( '\ n')、でしたか?私はそれをするとき、私はこのエラーを取得します;) – user69453

+0

いいえ!上記のようにコードを正確にコピーしました...なぜそのエラーを投げるのかわかりません! :s 日付と値の間のスペースは1スペース以上離れていると思いますが、これはこれに影響しますか? –

関連する問題