本文结构:

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

二、如何利用pandas绘图?

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

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

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

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

一、数据可视化基础知识

1.图形的选择

盘点数据分析中的图表类型(我们主要掌握其中基本常用的几种):数据观:数据分析图表使用指南(上)​zhuanlan.zhihu.com数据观:数据分析图表使用指南(下)​zhuanlan.zhihu.com

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​matplotlib.org

在上面的绘图中,我们传入的参数是一个列表。如果在以后的绘图中只限定于参数时列表,这会给我们的分析工作造成不便。一般,我们传入的是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次方

#线条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股票数据可视化浅析​zhuanlan.zhihu.com

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

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

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

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

4.1 Notebook中的Markdown功能

具体详见:Daxuya:Markdown常用基本语法及目录插件安装​zhuanlan.zhihu.com

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绘图、数据分析报告制作),每一块都值得好好学习。虽然花了前后几天的时间完成了这部分学习,但不等于学过就是学会,由于断断续续的学习,前后的知识点会出现衔接不上,后面要结合前面的知识点都串一串,内化为自己的。后边要把这块知识点整合到思维导图里边,方便之后自己的回顾和查找。

python ppt 绘图_Python数据分析-Matplotlib绘图基础相关推荐

  1. python bar图_python使用matplotlib绘图 — barChart | 学步园

    matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.它的文档相当完备,并且 ...

  2. matplotlib绘图_Python之matplotlib绘图示例

    在使用matplotlib模块时画坐标图时,往往需要对坐标轴设置很多参数,这些参数包括横纵坐标轴范围.坐标轴刻度大小.坐标轴名称等. 在matplotlib中包含了很多函数,用来对这些参数进行设置. ...

  3. python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法

    本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplo ...

  4. python数据分析 统计学_Python数据分析之统计学基础(案例:描述统计)

    学习数据分析离不开统计学的相关知识,在这块我自己属于零基础,上学的时候也是文科生没有开设任何数学相关课程,所以选择了<深入浅出统计学>这本书入门,下面对这块基础知识做一些整理. 一.集中趋 ...

  5. python入门三剑客_python数据分析三剑客基础之matpoltlib初解

    一.什么是matplotlib? python的底层绘图工具,主要做数据可视化图表,源自matplot. 二.为什么要学matplotlib? 1.它能将数据进行可视化,更直观的呈现出来 2.它能让数 ...

  6. python数据分析软件_Python数据分析工具

    Numpy Python没有提供数组功能,虽然列表可以完成基本的数组功能,但他不是真正的数组.Numpy内置函数处理速度是c语言级别,因此尽量使用内置函数,避免出现效率瓶颈的现象. Numpy的安装: ...

  7. python颜色参数_Python中matplotlib的颜色及线条参数控制示例

    用Python画图的时候选色选点都可以直接参考这里的内容,matplotlib中有哪些命名颜色可供用于绘图? 在matplotlib文档中找到一个列表,声明这些是唯一的名称: b: blue g: g ...

  8. python可视化直方图的x轴参数设置_Python数据分析matplotlib可视化之绘图

    Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单. Python中通过matplotlib模块的pypl ...

  9. python绘制折线图中文图例不显示_python使用matplotlib绘图时图例显示问题的解决...

    前言 matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包.在使用Python matplotlib库绘制数据图时,需要使用图例标注数据类别,但是传参时,会出现图 ...

最新文章

  1. Nature:根系菌群参与磷胁迫和免疫的平衡
  2. 视频清晰度、色偏以及亮度异常检测
  3. webpack入门--前端必备
  4. [Medical Image Processing] 1. Introduction
  5. matlab产生一组均为一的矩阵,在matlab中如何从一组数中得到随机数组成一个n*n的矩阵...
  6. java 正则表达式 提取ip_java正则表达式提取地址中的ip和端口号
  7. python中dataframe合并列名日期到季度_python – 如何在特定日期范围内的pandas列DataFrame中对某些值求和...
  8. C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)
  9. 判断对象所有属性是否全部为空
  10. zhajinhua2012邮件等网络服务的广泛应用
  11. MacBook写代码真香!包邮送一台!
  12. 利用UTL_FILE包实现文件I/O操作
  13. 李明顺专栏周5月12日:给门户支招
  14. Java基础篇之什么是类集?
  15. 现代语音信号处理之倒谱分析与同态滤波
  16. 【ParaView教程】2.13 保存截图和保存动画
  17. 钉钉生成jspapi token出现IP地址不在白名单的解决办法
  18. Android自定义Scrollbar样式
  19. 第十一届“认证杯”数学中国数学建模国际赛 (2022 CERTIFICATE AUTHORITY CUP INTERNATIONAL
  20. python毕设代做_怎么用python做毕设?

热门文章

  1. oracle 电子书大全
  2. java utc时间_Java获取UTC时间的方法
  3. hapi mysql项目实战路由初始化_hapi框架搭建记录(三):Joi数据校验和Sequelize(数据迁移、填充数据)...
  4. 高通msm8996启动流程
  5. 【智能电视必装软件】小鲸电视、hdp直播国庆假期经典好剧随心看
  6. 华为BLM是什么?有什么用?怎么用?三张图就说清楚了
  7. office起动缓慢_Word 启动缓慢解决方法
  8. 台达PLC伺服追剪程序,电子凸轮,全部源代码,PLC程序和触摸屏程序,DVP15MC
  9. 将AutoCAD文件中圆形替换为六边形
  10. 提高计算机软件速度的方法,提高电脑速度的10个有效方法