读取txt文件中的数据
1)首先是基础的,将数据(x,y)坐标读取到列表中即可
数据如下显示:
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
## 从.txt文件中读取数据
def loadData(flieName):
inFile = open(flieName, 'r')#以只读方式打开某fileName文件
#定义两个空list,用来存放文件中的数据
X = []
y = []
for line in inFile:
trainingSet = line.split(',') #对于每一行,按','把数据分开,这里是分成两部分
X.append(float(trainingSet[0])) #第一部分,即文件中的第一列数据逐一添加到list X 中
y.append(float(trainingSet[1])) #第二部分,即文件中的第二列数据逐一添加到list y 中
return X, y # X,y组成一个元组,这样可以通过函数一次性返回
x,y=loadData("NEWS.txt")
print(x)
print(y)
2)进阶的等以后遇到再补充哈
Python基本的作图
因为开始着手机器学习的一些知识点,所以可视化的作图成了绕不开的心结,这里简单介绍一下一些基本的作图语法,亲测适合啥都不会的小白
如果我讲的不清楚,这里有大佬的讲解链接没错,点我
1)**plt.plot()**绘制线图
具体参数看官方文档更好,当然咱入门先向大佬们学个皮毛,够用就行~
参数文档缩略版,戳我
"""
1、plot():绘制线图,展现数据变化的趋势
"""
import matplotlib.pyplot as plt
import numpy as np
#生成数据
x=np.linspace(0,10,1000)
y=np.sin(x)
'''
使用plt.plot()绘图
lw设置线宽
'-r'是说线条使用正常的连接曲线,颜色为红色
label设置线条标签,在图例中展示
.legend()为显示图例
'''
plt.plot(x,y,lw=1,ls='-',label='sin(x)',color='c')
plt.legend()
plt.show()
2)**plt.scatter()**绘制散点图
这个代码跑出来的图像极了漂亮的碎花裙 数学美丽的着装
'''
scatter()绘制散点图,常常用来观察变量的相关性
'''
import matplotlib.pyplot as plt
import numpy as np
#生成数据
x=np.linspace(0,10,100)#生成0-10之间的数据100个
y=np.random.rand(100)#随机生成100个数据点
z=np.random.rand(100)
print(x)
print(y)
#c~color设置颜色
#alpha控制透明度
#marker控制点的样式
plt.scatter(x,y,c='g',alpha=0.5,label='X',marker='<')
plt.scatter(x,z,c='b',alpha=0.5,label='Z',marker='*')
plt.legend()#显示图例
plt.show()
3)**xlim()/ylim()**设置坐标轴数值显示范围
这个的话呢emm,感觉用的不多,但是也不难,记住就好惹~
"""
xlim()/ylime()设置坐标轴数值显示范围
"""
import matplotlib.pyplot as plt
import numpy as np
#生成数据
x=np.linspace(0,10,100)
y=np.random.rand(100)
#使用scatter绘图
plt.scatter(x,y,label='scatters',marker='>',c='c')
plt.legend()
#plt.show()#第一次展示
plt.xlim(2,10)
plt.ylim(-.2,1.2)
plt.show()#注释掉第一次展示,康康第二次展示的区别
4)**xlabel()/ylabel()**设置坐标轴标签
这个用的蛮多的,也比较简单哈~记住就行
"""
xlabel()/ylabel()设置坐标轴标签
"""
import matplotlib.pyplot as plt
import numpy as np
#生成数据
x=np.linspace(0,10,100)
y=np.random.rand(100)
#使用scatter绘图
plt.scatter(x,y,label='scatters',marker='>',c='c')
plt.legend()
#plt.show()#第一次展示
plt.xlabel('x-axis')
plt.ylabel('y-axis')
plt.show()#注释掉第一次展示,康康第二次展示的区别
5)**grid()**绘制网格
"""
grid()函数正是用于设置图形中的网格线。
"""
import matplotlib.pyplot as plt
import numpy as np
#生成数据
x=np.linspace(0,10,100)
y=np.random.rand(100)
#使用scatter绘图
plt.scatter(x,y,label='scatters',marker='>',c='c')
plt.legend()
#plt.show()#第一次展示
plt.xlabel('x-axis')
plt.ylabel('y-axis')
'''
linestyle用于设置网格的线条类型,color用于设置网格的线条颜色
'''
plt.grid(linestyle=':',c='b')
plt.show()#注释掉第一次展示,康康第二次展示的区别
6)设置标题title()
昂~语法比较简单,也没啥参数
"""
grid()函数正是用于设置图形中的网格线。
"""
import matplotlib.pyplot as plt
import numpy as np
#生成数据
x=np.linspace(0,10,100)
y=np.sin(x)
z=np.cos(x)
#使用plot()绘图
plt.plot(x,y,ls='-.',lw=2,c='c',label='sin(x)')
plt.legend()
#设置标题
plt.title('A Sine Curve')
plt.show()
7)**legend()**添加图例
之前已经好多次见到了,这里不赘述了
8)**axhline() / axvline()😗*设置水平参考线和垂直参考线
"""
axhline() / axvline():设置水平参考线和垂直参考线
"""
import matplotlib.pyplot as plt
import numpy as np
#生成数据
x=np.linspace(0,10,100)
y=np.sin(x)
z=np.cos(x)
#使用plot()绘图
plt.plot(x,y,ls='-.',lw=2,c='c',label='sin(x)')
plt.legend()
#这里设置参考线
plt.axhline(y=0,c='r',ls='--',lw=2)
plt.axvline(x=5,c='b',ls='-',lw=2)
#设置标题
plt.title('A Sine Curve')
plt.show()
9)一个综合运用
当然这里因为有几个不太常用的 方法没有介绍,大家根据代码自学吧(狗头)
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm as cm
#生成数据
x=np.linspace(0.5,3.5,100)
y=np.sin(x)
y1=np.random.rand(100)
#创建图形并且绘制大小
plt.figure(figsize=(12,8))
#散点图
plt.scatter(x,y1,c='0.5',label='scatters')
#sin(x)图
plt.plot(x,y,ls='--',c='c',lw=2,label='sin(x)')
#plt.show()
#去掉图形上边和右边的边框
for spine in plt.gca().spines.keys():
if spine=='top' or spine=='right':
plt.gca().spines[spine].set_color('none')
#plt.show()
# 设置坐标轴上的刻度线位置
plt.gca().xaxis.set_ticks_position('bottom')
plt.gca().yaxis.set_ticks_position('left')
#将刻度线放在坐标轴内侧
plt.tick_params(direction='in')
#设置坐标轴范围
plt.xlim(0,4)
plt.ylim(-3,3)
#设置坐标轴标签
plt.xlabel('X')
plt.ylabel('Y')
#设置网格线
plt.grid(True,ls=':',color='r',alpha=0.5)
#添加水平参考线
plt.axhline(y=0,c='b',ls='--',lw=2)
#添加垂直参考区间
plt.axvspan(xmin=1,xmax=2,facecolor='g',alpha=0.1)
#plt.show()
#添加sin(x)的最高点的注释
plt.annotate('maximum',
xy=(np.pi/2,1),
xytext=(np.pi/2,1.3),
weight='regular',
c='r',
fontsize=12,
arrowprops={
'arrowstyle':'->',
'connectionstyle':'arc3',
'color':'r'
})
#plt.show()
#添加y轴边框注释
plt.annotate('spines',
xy=(0,-2.5),
xytext=(0.25,-2.3),
weight='regular',
c='c',
fontsize=12,
arrowprops={
'arrowstyle':'->',
'connectionstyle':'arc3',
'color':'c'
}
)
#plt.show()
#设置标题
plt.title('Practice of Python')
#添加图例
plt.legend()
#展示图形
plt.show()