2016-07-22 10 views
3

こんにちは私はmatplotlibを使って.txtファイルをプロットしようとしていますが、このエラーが発生しています。私は数週間前に覚え始めたので、Pythonに慣れていません。テキストファイルの形式は(2048行)matplotlibを使用して.txtファイルからデータをプロットする方法はありますか?

6876.593750 1 
6876.302246 1 
6876.003418 0 

データを.txtファイルにプロットするだけです。
エラーは[IndexError:リストインデックスが範囲外です。[ これは私が使用しているプログラムです。

import numpy as np 
import matplotlib.pyplot as plt 

with open("Alpha_Particle.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 title")  
ax1.set_xlabel('x label') 
ax1.set_ylabel('y label') 

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

leg = ax1.legend() 

plt.show() 

ありがとうございます!

+0

一見すると、xデータポイントとyデータポイントの間に.txtファイルの2つのスペースがあるように見えます。 1つのスペースに沿ってあなたのリストの理解に分割すると、xポイント、スペース、およびyポイントのリストが返されます。 –

+0

データには3行ではなく4行があります – aless80

答えて

1

迅速な解決策は、このようにデータで4番目の要素を削除するには、次のようになります。

data.pop() 

置き、それ

data = data.split('\n') 
3

後にあなただけの間違ったデータで読んでいます。

with open('Alpha_Particle.txt') as f: 
    lines = f.readlines() 
    x = [line.split()[0] for line in lines] 
    y = [line.split()[1] for line in lines] 

x 
['6876.593750', '6876.302246', '6876.003418'] 

y 
['1', '1', '0'] 
関連する問題