pythonppt绘图_Python数据分析-Matplotlib绘图基础
本⽂结构:
⼀、Matplotlib绘图基础及中⽂乱码解决
⼆、如何利⽤pandas绘图?
三、如何利⽤notebook制作分析报告?
图形在我们⽇常⽣活中⽆处不在。如果没有可视化,就是⼀些数字罗列,那就跟⽂字信息没什么差异了,同样让⼈难以理解,觉得枯燥。所以说,数据的可视化⾮常重要。
Matplotlib 是Python中著名的⼀个2D绘图库,通过 Matplotlib,我们可以快速绘制图表。很多其他的绘图包也是由它封装⽽成。
其中常⽤到的是它的pyplot,由于刚⼊门学习,本⽂主要学习pyplot。
⼀、数据可视化基础知识
1.图形的选择
盘点数据分析中的图表类型(我们主要掌握其中基本常⽤的⼏种):数据观:数据分析图表使⽤指南(上)z huanlan.zhihu数据观:数据分
析图表使⽤指南(下)z huanlan.zhihu
2.matplotlib绘图基础
2.1 画板、画纸的概念画画⽤的画板和画纸
我们知道画画时需要画板和画纸。在matplotlib中也是⼀个道理。
图形在画板(figure)中绘制完成,⽽画板⼜由不同的画纸(axes)构成,具体的图形构建时要指明画板和画纸,否则默认⼀画板⼀画纸。
2.2 可视化图中的刻度表⽰:可视化图中的刻度表⽰
⼀图了解Matplotlib绘图的组成元素:图⽚来源于⽹络
⼆、如何使⽤绘图包Matplotlib?
绘图前准备⼯作:
⾸先,在使⽤先你需要在conda中安装包,输⼊命令:conda install matplotlib
进⽽使⽤import导⼊该绘图包:
#导⼊matplotlib的pyplot模块
import matplotlib.pyplot as plt
下⾯我们就可以开始绘制图形啦。
折线图绘制:
'''画图基本三步骤:第1步:定义x和y坐标轴上的点第2步:使⽤plot绘制线条第3步:显⽰图形'''
#第1步:
#x坐标轴上点的数值
x=[1, 2, 3, 4]
#y坐标轴上点的数值
y=[1, 4, 9, 16]
#第2步:使⽤plot绘制线条
#第1个参数是x的坐标值,第2个参数是y的坐标值
plt.plot(x,y)
#第3步:显⽰图形
plt.show()
得到图形:
以上给出的就是画图基本三步骤。现在试着在基本步骤上给上折线图增加⼀些属性。
'''color:线条颜⾊,值r表⽰红⾊(red)marker:点的形状,值o表⽰点为圆圈标记(circle marker)linestyle:线条的形状,值dashed表⽰⽤虚线连接各点'''
plt.plot(x, y, color='r',marker='o',linestyle='dashed')
'''axis:坐标轴范围语法为axis[xmin, xmax, ymin, ymax],也就是axis[x轴最⼩值, x轴最⼤值, y轴最⼩值, y轴最⼤值]'''
plt.axis([0, 6, 0, 20])
plt.show()
得到图形:
关于图形属性的设置,不需要记住全部,在⽤到时可对应查看官⽅⽂档进⾏设置即可:matplotlib.lines.Line2D - Matplotlib 3.2.1
documentation
在上⾯的绘图中,我们传⼊的参数是⼀个列表。如果在以后的绘图中只限定于参数时列表,这会给我们的分析⼯作造成不便。⼀般,我们传⼊的是numpy的数组。实际上,所有参⼊的值内部都会转换为numpy的数组。
下⾯我们尝试绘制包含多条线的图形。
import numpy as np
# arange⽤于⽣成⼀个等差数组,arange([start, ]stop, [step, ]
t = np.arange(0, 5, 0.2) # 0开始 5结束 间隔为0.2的等差数组
t
#结果为:
array([ 0. , 0.2, 0.4, 0.6, 0.8, 1. , 1.2, 1.4, 1.6, 1.8, 2. ,
2.2, 2.4, 2.6, 2.8,
3. , 3.2, 3.4, 3.6, 3.8,
4. , 4.2,
4.4, 4.6, 4.8])
'''下⾯使⽤数组同时绘制多个线性'''
#线条1
x1=y1=t
#线条2
x2=x1
y2=t**2 # 运算符**,表⽰幂 - 返回x的y次幂,这⾥是t的2次⽅
matplotlib中subplot#线条3
x3=x1
y3=t**3 # t的3次⽅
#使⽤plot绘制线条(借助List)
linesList=plt.plot(x1, y1,
x2, y2,
x3, y3 )
#⽤setp⽅法同时设置多个线条的属性
plt.setp(linesList, color='r')
plt.show()
print('返回的数据类型',type(linesList))
print('数据⼤⼩:',len(linesList))
#结果为:
返回的数据类型
数据⼤⼩: 3
得到图形:
光看图,我们不知道它描述的是哪个变量之间的关系。我们接着学给图形加上⽂本标签和注释。
'''添加⽂本:1.绘制图形2.添加:x、y轴标签;标题;注释'''
x=[1, 2, 3, 4]
y=[1, 4, 9, 16]
plt.plot(x,y)
plt.xlabel('x坐标轴')
plt.ylabel('y坐标轴')
plt.title('标题')
'''添加注释:xy:箭头注释中箭头所在位置,xytext:注释⽂本所在位置,arrowprops在xy和xytext之间绘制箭头,shrink表⽰注释点与注释⽂本之间的图标距离'''
plt.annotate('我是注释', xy=(2,5), xytext=(2, 10),
arrowprops=dict(facecolor='black', shrink=0.01)
)
plt.show()
得到图形:
我们看到,虽然有显⽰,但是显⽰的是中⽂乱码。
出现乱码原因:matplotlib 初始化加载时配置⽂件中没有加⼊中⽂字体,因此我们需要给它制定⼀个可⽤的中⽂字体。
如何⼀次解决绘图中⽂乱码问题?
1.到配置⽂件matplotlib
#到 matplotlib 加载的配置⽂件路径
import matplotlib
matplotlib.matplotlib_fname()
2.下载中⽂字体
根据⾃⼰的电脑系统下载对应的中⽂字体-复制到fonts⽂件下ttf中-最后双击安装
3.修改配置⽂件
在修改前我们先将配置⽂件备份(备份为matplotlibrc.bak),进⽽利⽤Notepad打开原⽂件进⾏修改编辑。
主要修改操作:利⽤Notepad打开matplotlibrc- 去掉#font.family前的#号-去掉#font.sans-serif前的#号并在后⾯后加"SimHei,"- 去掉#axes.unicode_minus前的#号并修改True为Flase
修改前:
修改后:
4.删除缓存⽬录
最后,到C:\Users\你的⽤户名⽂件夹下的.matplotlib缓存⽂件夹,将这个缓存⽂件夹删除,再重启jupyter notebook即可,使新配置的⽂件⽣效。
现在我们重新运⾏下代码,来看下乱码问题是否解决:修改后图形
下⾯我们进⼀步学习,怎么使⽤多个画板、多个画纸来绘制多个图呢?以⼀个画板4张画纸(2*2)为例:
#创建画板1
fig = plt.figure(1) # 参数1代表画板1 不写参数,默认1
#第2步:创建画纸(⼦图)
'''subplot()⽅法⾥⾯传⼊的三个数字前两个数字代表要⽣成⼏⾏⼏列的⼦图矩阵,第三个数字代表选中的⼦图位置subplot(211)⽣成⼀个2⾏1列的⼦图矩阵,当前是第⼀个⼦图'''
#创建4张画纸(2*2)
#选择画纸1
#等价于ax1=fig.add_subplot(211)
ax1=plt.subplot(2,2,1) # 不指定的话默认⼦图subplot(111)
#在画纸上绘图
plt.plot([1, 2, 3])
#选择画纸2
ax2=plt.subplot(2,2,2)
#在画纸2上绘图
plt.plot([4, 5, 6])
import numpy as np
# arange⽤于⽣成⼀个等差数组,arange([start, ]stop, [step, ]
t = np.arange(0, 5, 0.2) # 0开始 5结束 间隔为0.2的等差数组
#选择画纸3
ax3=plt.subplot(2,2,3)
#在画纸2上绘图
plt.plot(t,t ** 2)
#选择画纸4
ax4=plt.subplot(2,2,4)
#在画纸2上绘图
plt.plot(t,t ** 3)
plt.show()
得到图形:
P: 如果没有指明画板figure()和⼦图subplot,会默认创建⼀个画板figure(1) 和⼀个⼦图subplot(111)。
三、如何使⽤Pandas绘图?
实际应⽤中我们使⽤的数据分析包Pandas,它有⾃⼰的绘图⼯具,它是在Matplotlib基础之上封装⽽成。这部分我们就⼀起学习如何利⽤Pandas的绘图功能。
下⾯将通过股票数据的可视化来学习这部分。具体详见:Daxuya:GAFATA股票数据可视化浅析z huanlan.zhihu
四、如何⽤Notebook制作数据分析报告?
数据分析报告的形成就好⽐我们写论⽂的过程,需要进⾏以下⼏个步骤:
1.提出问题-
2.理解数据-
3.数据清洗-
4.构建模型-
5.模型评估-
6.⽅案实施
数据分析报告的展现可以⽤⽂档报告,也可以是PPT展⽰。下⾯主要学习使⽤Notebook中的Markdown功能实现⽂档报告和⽤notebook 中的幻灯⽚创建。
4.1 Notebook中的Markdown功能
具体详见:Daxuya:Markdown常⽤基本语法及⽬录插件安装z huanlan.zhihu
4.2 Notebook实现幻灯⽚创建
notebook不仅可以创建⽂本,还可以创建幻灯⽚!
幻灯⽚的创建与运⾏显⽰:View- Cell Toolbar- 幻灯⽚选项可以显⽰幻灯⽚菜单。
2. 在cell中,可以选择相应的类型。
其中,幻灯⽚表⽰⼀页的开始,⼦幻灯⽚会从前⼀张幻灯⽚的下⽅出现,⽽碎⽚会先处于隐藏状态,然后以动画的形式浮出在前⼀张(⼦)幻
灯⽚内,其他的设置则会从演⽰中隐形。
3. 若不想类型显⽰在cell中,选择View- Cell Toolbar- None则可以隐藏和退出幻灯⽚。
4. 运⾏幻灯⽚
拿我之前学习Python基础的⽂件(Python基础学习.ipynb)为例,对其进⾏幻灯⽚创建:
在anocanda prompt中输⼊“jupyter nbconvert 当前notebook的⽂件路径 --to slides --post serve”,即会在当前⽂件夹下⽣成html
⽂件,提供访问。
效果展⽰:
本⽂其实包含了三⼤块(matplotlib绘图基础、Pandas绘图、数据分析报告制作),每⼀块都值得好好学习。虽然花了前后⼏天的时间完成了这部分学习,但不等于学过就是学会,由于断断续续的学习,前后的知识点会出现衔接不上,后⾯要结合前⾯的知识点都串⼀串,内化为⾃⼰的。后边要把这块知识点整合到思维导图⾥边,⽅便之后⾃⼰的回顾和查。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论