我有以下最小代码,我想通过读取用户指定的数据文件来制作绘图。在图中,我希望用户还指定 x 和 y 标签。
# ReadFileAndPlot.py
import numpy as np
import pylab as pl
# Use numpy to load the data contained in the file
datafile=raw_input('Enter data filenamen')
print 'Data filename :',datafile
x,y=map(string,raw_input('Enter x and y axis labelsn').split())
#x='Current'; y='Voltage'
data = np.loadtxt(datafile)
# plot the first column as x, and second column as y
pl.plot(data[:,0], data[:,1], 'ro')
pl.xlabel(x)
pl.ylabel(y)
pl.xlim(0.0, 10.)
pl.show()
然而,字符串在使用split
将其馈送为多个输入时未识别。因此,我收到消息:NameError: name 'string' is not defined
[虽然可以使用int
变量]。
有什么方法可以使用split
或类似的方法来纠正此问题?
您不需要使用地图。只需将元组分开并分配给X和Y即可。但是它将无法确保用户给出有效的输入(平均两个单词(。如果有两个以上的单词会破裂。
while True:
try:
x, y = raw_input('Enter x and y axis labelsn').split()
break
except ValueError:
print('Invalid input.')
使用str代替字符串:
x,y=map(str, raw_input('Enter x and y axis labelsn').split())