python数据分析——numpy,pandas,matplotlib

发布时间:2022-08-19 14:07

matliotilb:帮助画图

numpy:帮助我们处理数据型的数组

pandas:是在numpy的基础上除了帮我们处理数据型的数组,还能帮助我们处理字符串,列表,以及时间序列等等所有数据类型都是可以处理的

一,数据分析是用适当的方法对收集来的大量数据进行分析.(帮助人们做出判断,以便采取适当行动)

二,数据分析的流程:

1.提出问题

2.准备数据

3.分析数据

4.获得结论

5.成果可视化(图表或者文字等)

三,环境anaconda

jupyter notebook

python数据分析——numpy,pandas,matplotlib_第1张图片

 matplotlib:最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB

1.能将数据进行可视化,更直观的呈现

2.使数据更加客观,更具说服力

通过下面一个小例子我们来看一下matplotlib该如何简单的使用

假设一天当中每隔两个小时(range(2,26,2))的气温分别是[15,13,23,24,15,26,22,26,23,11,10,8]

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,23,24,15,26,22,26,23,11,10,8]#数据在y轴的位置,是一个可迭代对象
#->x轴和y轴的数据一起组成了所有要绘制出的坐标
#->分别是(2,15)(4,13)(6,23(8,24)......
plt.plot(x,y)#->传入x和y,通过plot绘制出折线图
plt.show()#->在执行程序的时候展示图形

python数据分析——numpy,pandas,matplotlib_第2张图片

 设置图片大小

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,23,24,15,26,22,26,23,11,10,8]#数据在y轴的位置,是一个可迭代对象
#->x轴和y轴的数据一起组成了所有要绘制出的坐标
#->分别是(2,15)(4,13)(6,23(8,24)......
plt.figure(figsize=(21,10),dpi=100)#设置图片大小
plt.plot(x,y)#->传入x和y,通过plot绘制出折线图
plt.show()#->在执行程序的时候展示图形

python数据分析——numpy,pandas,matplotlib_第3张图片

 保存图片

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,23,24,15,26,22,26,23,11,10,8]#数据在y轴的位置,是一个可迭代对象
#->x轴和y轴的数据一起组成了所有要绘制出的坐标
#->分别是(2,15)(4,13)(6,23(8,24)......
plt.figure(figsize=(21,10),dpi=100)#设置图片大小
plt.plot(x,y)#->传入x和y,通过plot绘制出折线图
plt.savefig("./sig_size.png")#保存图片,可以保存为svg这种矢量图格式,放大不会有据齿
plt.show()#->在执行程序的时候展示图形

python数据分析——numpy,pandas,matplotlib_第4张图片

 绘制x轴的刻度

plt.xticks(x)

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,23,24,15,26,22,26,23,11,10,8]#数据在y轴的位置,是一个可迭代对象
#->x轴和y轴的数据一起组成了所有要绘制出的坐标
#->分别是(2,15)(4,13)(6,23(8,24)......
plt.figure(figsize=(21,10),dpi=100)#设置图片大小
plt.plot(x,y)#->传入x和y,通过plot绘制出折线图
plt.xticks(x)#绘制x轴的刻度
#plt.savefig("./sig_size.png")#保存图片,可以保存为svg这种矢量图格式,放大不会有据齿
plt.show()#->在执行程序的时候展示图形

python数据分析——numpy,pandas,matplotlib_第5张图片

 plt.xticks(range(2,25,1))#改变范围与步幅

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,23,24,15,26,22,26,23,11,10,8]#数据在y轴的位置,是一个可迭代对象
#->x轴和y轴的数据一起组成了所有要绘制出的坐标
#->分别是(2,15)(4,13)(6,23(8,24)......
plt.figure(figsize=(21,10),dpi=100)#设置图片大小
plt.plot(x,y)#->传入x和y,通过plot绘制出折线图
plt.xticks(range(2,25,1))#绘制x轴的刻度
#plt.savefig("./sig_size.png")#保存图片,可以保存为svg这种矢量图格式,放大不会有据齿
plt.show()#->在执行程序的时候展示图形

python数据分析——numpy,pandas,matplotlib_第6张图片

 改变x轴的刻度

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,23,24,15,26,22,26,23,11,10,8]#数据在y轴的位置,是一个可迭代对象
#->x轴和y轴的数据一起组成了所有要绘制出的坐标
#->分别是(2,15)(4,13)(6,23(8,24)......
plt.figure(figsize=(21,10),dpi=100)#设置图片大小
plt.plot(x,y)#->传入x和y,通过plot绘制出折线图
_stick_labels = [i/2 for i in range (4,49)]
plt.xticks(_stick_labels)#绘制x轴的刻度
#plt.savefig("./sig_size.png")#保存图片,可以保存为svg这种矢量图格式,放大不会有据齿
plt.show()#->在执行程序的时候展示图形

python数据分析——numpy,pandas,matplotlib_第7张图片

 y轴刻度

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,23,24,15,26,22,26,23,11,10,8]#数据在y轴的位置,是一个可迭代对象
#->x轴和y轴的数据一起组成了所有要绘制出的坐标
#->分别是(2,15)(4,13)(6,23(8,24)......
plt.figure(figsize=(21,10),dpi=100)#设置图片大小
plt.plot(x,y)#->传入x和y,通过plot绘制出折线图
_stick_labels = [i/2 for i in range (4,49)]
plt.xticks(_stick_labels)#绘制x轴的刻度
plt.yticks(range(min(y),max(y)))
#plt.savefig("./sig_size.png")#保存图片,可以保存为svg这种矢量图格式,放大不会有据齿
plt.show()#->在执行程序的时候展示图形

python数据分析——numpy,pandas,matplotlib_第8张图片

 如果列表a表示8点到10的每一分钟的气温变化,该如何绘制折线图观察每一分钟气温的变化情

a = [random.randint(23,37)for i in range(120)]

from matplotlib import pyplot as plt
import random
x = range(0,120)
y = [random.randint(23,37)for i in range(120)]
plt.plot(x,y)
plt.show()

python数据分析——numpy,pandas,matplotlib_第9张图片

from matplotlib import pyplot as plt
import random
x = range(0,120)
y = [random.randint(23,37)for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)#设置图片大小
plt.plot(x,y)
_x = x
_xtick_labels = ["hello,{}".format(i) for i in _x]#调整x轴的刻度
plt.xticks(_x,_xtick_labels)
plt.show()

python数据分析——numpy,pandas,matplotlib_第10张图片

#调整x轴的刻度

_x = x
_xtick_labels = ["hello,{}".format(i) for i in _x]
plt.xticks(_x,_xtick_labels)

from matplotlib import pyplot as plt
import random
x = range(0,120)
y = [random.randint(23,37)for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
_x = list(x)[::10]
_xtick_labels = ["hello,{}".format(i) for i in _x]#调整x轴的刻度
plt.xticks(_x,_xtick_labels)
plt.show()

python数据分析——numpy,pandas,matplotlib_第11张图片

from matplotlib import pyplot as plt
import random
x = range(0,120)
y = [random.randint(23,37)for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
_xtick_labels = ["10点{}分".format(i) for i in range(60)]#调整x轴的刻度
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_labels[::3])#取步长,数字和字符串一一对应,数据的长度一样
plt.show()

 python数据分析——numpy,pandas,matplotlib_第12张图片

from matplotlib import pyplot as plt
import random
x = range(0,120)
y = [random.randint(23,37)for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
_xtick_labels = ["10点{}分".format(i) for i in range(60)]#调整x轴的刻度
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=45)#取步长,数字和字符串一一对应,数据的长度一样
#rotation旋转的度数
plt.show()

python数据分析——numpy,pandas,matplotlib_第13张图片

 设置中文显示

为什么无法显示中文:

matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字

查看linux/mac

fc-list->查看支持的字体

fc-list :lang=zh->查看支持的中文(冒号前面有空格)

那么问题来了:如何修改matplotlib的默认字体?

通过matplotlib.rc可以修改,具体方法参见源码(windows/linux/mac)

通过matplotlib下的font manager可以解决(windows/linux)

from matplotlib import pyplot as plt
import random
import matplotlib 
from matplotlib import font_manager
#windows和linux设置字体的方式
#font = {'family':'Ubuntu-R.ttf',
#         'weight':'larger',
#         'size':'larger'}
#matplotlib.rc("font",**font)
#matplotlib.rc("font",famliy='Ubuntu-R.ttf','weight':'larger')
my_font = font_manager.FontProperties(fname="/static/fonts/Ubuntu-R.ttf")
x = range(0,120)
y = [random.randint(23,37)for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
_xtick_labels = ["10点{}分".format(i) for i in range(60)]#调整x轴的刻度
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=45,fontproperties=my_font)#取步长,数字和字符串一一对应,数据的长度一样
#rotation旋转的度数
plt.show()

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号