08ceda509f5eeeeaad00f5cf05185abb.png

本文结构:

一、Matplotlib绘图基础及中文乱码解决

二、如何利用pandas绘图?

三、如何利用notebook制作分析报告?

图形在我们日常生活中无处不在。如果没有可视化,就是一些数字罗列,那就跟文字信息没什么差异了,同样让人难以理解,觉得枯燥。所以说,数据的可视化非常重要。

Matplotlib 是Python中著名的一个2D绘图库,通过 Matplotlib,我们可以快速绘制图表。很多其他的绘图包也是由它封装而成。

其中常用到的是它的pyplot,由于刚入门学习,本文主要学习pyplot。

一、数据可视化基础知识

1.图形的选择

盘点数据分析中的图表类型(我们主要掌握其中基本常用的几种):

数据观:数据分析图表使用指南(上)​zhuanlan.zhihu.com
442b40c8847af6a6745ae0ec16d1dbf3.png
数据观:数据分析图表使用指南(下)​zhuanlan.zhihu.com
1a398a1b185e2ced0f87d965cfce283b.png

2.matplotlib绘图基础

2.1 画板、画纸的概念

715c9f02dfb3d8b02050b383d387abe3.png
画画用的画板和画纸

我们知道画画时需要画板和画纸。在matplotlib中也是一个道理。

图形在画板(figure)中绘制完成,而画板又由不同的画纸(axes)构成,具体的图形构建时要指明画板和画纸,否则默认一画板一画纸。

2.2 可视化图中的刻度表示:

695e33e716718759857ee73cfadc975c.png
可视化图中的刻度表示

一图了解Matplotlib绘图的组成元素:

0ece998cfd3173d52e52b610c441bd68.png
图片来源于网络

二、如何使用绘图包Matplotlib?

绘图前准备工作:

首先,在使用先你需要在conda中安装包,输入命令:conda install matplotlib

进而使用import导入该绘图包:

#导入matplotlib的pyplot模块

下面我们就可以开始绘制图形啦。

折线图绘制:

'''

得到图形:

f16099357dda22c998fa91e4383574e9.png

以上给出的就是画图基本三步骤。现在试着在基本步骤上给上折线图增加一些属性

'''

得到图形:

eadd42fadacf5fd97d94bca5b014db78.png

关于图形属性的设置,不需要记住全部,在用到时可对应查看官方文档进行设置即可:

matplotlib.lines.Line2D - Matplotlib 3.2.1 documentation​matplotlib.org
ca6b3d54b6a3f8cdb22c0b8c4644314d.png

在上面的绘图中,我们传入的参数是一个列表。如果在以后的绘图中只限定于参数时列表,这会给我们的分析工作造成不便。一般,我们传入的是numpy的数组。实际上,所有参入的值内部都会转换为numpy的数组。

下面我们尝试绘制包含多条线的图形。

import 

得到图形:

d9d51d216671c07501d15af2d24bf437.png

光看图,我们不知道它描述的是哪个变量之间的关系。我们接着学给图形加上文本标签和注释。

'''

得到图形:

93bf43e9e67635f2d5a8b00f4f9caaa8.png

我们看到,虽然有显示,但是显示的是中文乱码。

出现乱码原因:matplotlib 初始化加载时配置文件中没有加入中文字体,因此我们需要给它制定一个可用的中文字体。

如何一次解决绘图中文乱码问题?

1.找到配置文件matplotlib

#找到 matplotlib 加载的配置文件路径

2c6934a53424d09e0216e95af77dc52f.png

d65936822e1bda2790477f3d09919e4f.png

2.下载中文字体

根据自己的电脑系统下载对应的中文字体-复制到fonts文件下ttf中-最后双击安装

1d91d82dbf0362ae4543fa4a71bebd93.png

3.修改配置文件

在修改前我们先将配置文件备份(备份为matplotlibrc.bak),进而利用Notepad打开原文件进行修改编辑。

主要修改操作:利用Notepad打开matplotlibrc- 去掉#font.family前的#号-去掉#font.sans-serif前的#号并在后面后加"SimHei,"- 去掉#axes.unicode_minus前的#号并修改True为Flase

修改前:

00062551130878d9c69d08a02878de85.png

54499987-812b-eb11-8da9-e4434bdf6706.png

修改后:

fc72773bde48cdeb14a94d94974435a9.png

4.删除缓存目录

最后,找到C:Users你的用户名文件夹下的.matplotlib缓存文件夹,将这个缓存文件夹删除,再重启jupyter notebook即可,使新配置的文件生效。

现在我们重新运行下代码,来看下乱码问题是否解决:

a5290684348cbd3e742de8a718f5b980.png
修改后图形

下面我们进一步学习,怎么使用多个画板、多个画纸来绘制多个图呢?以一个画板4张画纸(2*2)为例:

#创建画板1

得到图形:

7bcb7ca5f0e0c1aa27d5217e99cc7fb4.png

P: 如果没有指明画板figure()和子图subplot,会默认创建一个画板figure(1) 和一个子图subplot(111)。


三、如何使用Pandas绘图?

实际应用中我们使用的数据分析包Pandas,它有自己的绘图工具,它是在Matplotlib基础之上封装而成。这部分我们就一起学习如何利用Pandas的绘图功能。

下面将通过股票数据的可视化来学习这部分。具体详见:

Daxuya:GAFATA股票数据可视化浅析​zhuanlan.zhihu.com
e75032ab2de0017ad5d25eb607f020ce.png

四、如何用Notebook制作数据分析报告?

数据分析报告的形成就好比我们写论文的过程,需要进行以下几个步骤:

1.提出问题- 2.理解数据- 3.数据清洗- 4.构建模型- 5.模型评估- 6.方案实施

数据分析报告的展现可以用文档报告,也可以是PPT展示。下面主要学习使用Notebook中的Markdown功能实现文档报告和用notebook中的幻灯片创建。

4.1 Notebook中的Markdown功能

具体详见:

Daxuya:Markdown常用基本语法及目录插件安装​zhuanlan.zhihu.com
348879be9d1dda4b7c146423e67ff090.png

4.2 Notebook实现幻灯片创建

notebook不仅可以创建文本,还可以创建幻灯片!

幻灯片的创建与运行显示:

  1. View- Cell Toolbar- 幻灯片选项可以显示幻灯片菜单。

f8e931650039b2688271ac3ace4bb10f.png

2. 在cell中,可以选择相应的类型。

其中,幻灯片表示一页的开始,子幻灯片会从前一张幻灯片的下方出现,而碎片会先处于隐藏状态,然后以动画的形式浮出在前一张(子)幻灯片内,其他的设置则会从演示中隐形。

4b3535b212dcfc748f8fe41f6b854241.png

3. 若不想类型显示在cell中,选择View- Cell Toolbar- None则可以隐藏和退出幻灯片。

b32b0aadf9f6128778ea1f7424bc5d26.png


4. 运行幻灯片

拿我之前学习Python基础的文件(Python基础学习.ipynb)为例,对其进行幻灯片创建:

在anocanda prompt中输入“jupyter nbconvert 当前notebook的文件路径 --to slides --post serve”,即会在当前文件夹下生成html文件,提供访问。

7408cda336a3cece84ee1aba02656e1f.png

9097e21797e46ca90751c7be1cc034a1.png

效果展示:

ce858f269cc960b2bf4f047c2cc993eb.png

本文其实包含了三大块(matplotlib绘图基础、Pandas绘图、数据分析报告制作),每一块都值得好好学习。虽然花了前后几天的时间完成了这部分学习,但不等于学过就是学会,由于断断续续的学习,前后的知识点会出现衔接不上,后面要结合前面的知识点都串一串,内化为自己的。后边要把这块知识点整合到思维导图里边,方便之后自己的回顾和查找。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐