Matplotlib在从文件绘制图形时给出一些错误

时间:2018-02-15 18:33:49

标签: python python-3.x matplotlib

所以,我在这里尝试使用文件中提供的坐标绘制图形。我打开文件并在数组中设置坐标以按照放入图表的方式提供数组。

代码:

import matplotlib
import matplotlib.pyplot as plt

x=[]
y=[]

readFile=open("coordinates.txt","r")
data = readFile.read().split("\n")

print(data)

for i in data:
    val = i.split(",")
    x.append(int(val[0]))
    y.append(int(val[1]))

plt.plot(x,y)
plt.show()

输出:

['3,22', '5,16', '-2,8', '10,43', '4,0', '']
Traceback (most recent call last):
  File "/home/nishantsikri/matplotlib from file.py", line 14, in <module>
    x.append(int(val[0]))
ValueError: invalid literal for int() with base 10: ''

2 个答案:

答案 0 :(得分:1)

问题是文件末尾有一个空行。人们需要检查是否将其附加到列表中。

然而,似乎可以将完整的代码压缩为

import numpy as np
import matplotlib.pyplot as plt

x,y = np.genfromtxt("coordinates.txt", unpack=True, delimiter=",")
plt.plot(x,y)
plt.show()

这也会自动处理空行。

答案 1 :(得分:0)

您的文件中有尾随空格。使用strip删除尾随空格。

data = readFile.read().strip().split("\n")