下面的是某一文本文件中的数据。
6.1101,17.592
5.5277,9.13028.5186,13.662
7.0032,11.854
5.8598,6.8233
8.3829,11.886
7.4764,4.3483
8.5781,12
6.4862,6.5987
5.0546,3.8166
5.7107,3.2522
14.164,15.505
5.734,3.1551
8.4084,7.2258
5.6407,0.71618
5.3794,3.5129
6.3654,5.3048
5.1301,0.56077
6.4296,3.6518
7.0708,5.3893
6.1891,3.1386
20.27,21.767
5.4901,4.263
6.3261,5.1875
5.5649,3.0825
18.945,22.638
12.828,13.501
10.957,7.0467
13.176,14.692
22.203,24.147
5.2524,-1.22
6.5894,5.9966
9.2482,12.134
5.8918,1.8495
8.2111,6.5426
7.9334,4.5623
8.0959,4.1164
5.6063,3.3928
12.836,10.117
6.3534,5.4974
5.4069,0.55657
6.8825,3.9115
11.708,5.3854
5.7737,2.4406
7.8247,6.7318
7.0931,1.0463
5.0702,5.1337
5.8014,1.844
11.7,8.0043
5.5416,1.0179
7.5402,6.7504
5.3077,1.8396
7.4239,4.2885
7.6031,4.9981
6.3328,1.4233
6.3589,-1.4211
6.2742,2.4756
5.6397,4.6042
9.3102,3.9624
9.4536,5.4141
8.8254,5.1694
5.1793,-0.74279
21.279,17.929
14.908,12.054
18.959,17.054
7.2182,4.8852
8.2951,5.7442
10.236,7.7754
5.4994,1.0173
20.341,20.992
10.136,6.6799
7.3345,4.0259
6.0062,1.2784
7.2259,3.3411
5.0269,-2.6807
6.5479,0.29678
7.5386,3.8845
5.0365,5.7014
10.274,6.7526
5.1077,2.0576
5.7292,0.47953
5.1884,0.20421
6.3557,0.67861
9.7687,7.5435
6.5159,5.3436
8.5172,4.2415
9.1802,6.7981
6.002,0.92695
5.5204,0.152
5.0594,2.8214
5.7077,1.8451
7.6366,4.2959
5.8707,7.2029
5.3054,1.9869
8.2934,0.14454
13.394,9.0551
5.4369,0.61705
在MATLAB里面,读取文本文件中的数据是很方便的,直接load就行。而在Python中,需要稍微多几个步骤。
## 从.txt文件中读取数据
def loadData(flieName):
inFile = open(flieName, 'r')#以只读方式打开某fileName文件
#定义两个空list,用来存放文件中的数据
X = []
y = []
for line in inFile:
trainingSet = line.split(',') #对于每一行,按','把数据分开,这里是分成两部分
X.append(trainingSet[0]) #第一部分,即文件中的第一列数据逐一添加到list X 中
y.append(trainingSet[1]) #第二部分,即文件中的第二列数据逐一添加到list y 中
return (X, y) # X,y组成一个元组,这样可以通过函数一次性返回
下面就是绘制以变量X为横轴,y为纵轴的图像了。这里需要用到pylab库。即在程序一开始要有如下命令:
import pylab
下面便是具体绘制的代码了。
## 绘制该文件中的数据
## 需要引入pylab库,里面用到的函数和MATLAB里的非常类似
def plotData(X, y):
length = len(y)
pylab.figure(1)
pylab.plot(X, y, 'rx')
pylab.xlabel('Population of City in 10,000s')
pylab.ylabel('Profit in $10,000s')
pylab.show()#让绘制的图像在屏幕上显示出来
最后,调用前面两个函数。
(X,y) = loadData('ex1data1.txt')
plotData(X,y)
绘制得到的图像如下: