Python自学:菜菜子混乱的笔记04——txt文件中数据的读取、基本的作图

读取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()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值