0

因此,我正在尝试编写一个代码,该代码将从文本文件中导入数据并使用 matplotlib 绘制它,这是我目前所拥有的:

import matplotlib.pyplot as plt


x = []
y = []

readFile = open ('C:/Users/Owner/Documents/forcecurve.txt', 'r')

sepFile = readFile.read().split('\n')

readFile.close()

for plotPair in sepFile:
    xAndY = plotPair.split('\t')
    x.append(int (xAndY[0]))
    y.append(int (xAndY[1]))
print x
print y

plt.plot (x, y)



plt.xlabel('Distance (Nanometers)')
plt.ylabel('Force (Piconewtons)')

plt.show()

一旦运行这个我得到错误

ValueError: invalid literal for int() with base 10: '1,40.9'
4

1 回答 1

0

您的文件似乎是逗号分隔 ( 1,40.9),而不是制表符分隔,因此您需要用逗号而不是制表符分隔。改变

    xAndY = plotPair.split('\t')

    xAndY = plotPair.split(',')

csv或者,使用模块读取文件可能更容易。举个简单的例子:

import csv

readFile = open ('C:/Users/Owner/Documents/forcecurve.txt', 'r')

x = []
y = []

r = csv.reader(readFile)
for x1, y1 in r:
    x.append(int(x1))
    y.append(int(y1))

readFile.close()
于 2013-06-27T01:31:41.140 回答