在数据分析过程中,数据及模型可视化是无可避免的,同时这也是展示我们数据分析成果的最佳方式。因此,熟悉掌握绘图库的使用,对精进我们的数据分析技能起着不可替代的作用。

今天,我们就来了解一下python强大的绘图库——Matplotlib及Seaborn的使用。

首先我们先来了解一下这两个强大的库。

Matplotlib

支持 Python 语言的开源绘图库(可以说是python里最优秀的绘图库了),因为其支持丰富的绘图类型、简单的绘图方式以及完善的接口文档,深受 Python 工程师、科研学者、数据工程师等各类人士的喜欢。

Seaborn

是以 Matplotlib 为核心的高阶绘图库,无需经过复杂的自定义即可绘制出更加漂亮的图形,非常适合用于数据可视化探索。

(两者的联系?区别?)

Matplotlib 应该是基于 Python 语言最优秀的绘图库了,但是它也有一个十分令人头疼的问题,那就是太过于复杂了。3000 多页的官方文档,上千个方法以及数万个参数,属于典型的你可以用它做任何事,但又无从下手。尤其是,当你想通过 Matplotlib 调出非常漂亮的效果时,往往会伤透脑筋,非常麻烦。

Seaborn 基于 Matplotlib 核心库进行了更高阶的 API 封装,可以让你轻松地画出更漂亮的图形。Seaborn 的漂亮主要体现在配色更加舒服、以及图形元素的样式更加细腻。

一句话:

Matplotlib是python绘图的基础,而Seaborn是在基础上,针对实际工作进一步的精炼与提升~


我们还是要从基础开始说起:

1、首先,导入库:

from matplotlib import pyplot as plt

pyplot模块是 Matplotlib 最核心的模块,几乎所有样式的 2D 图形都是经过该模块绘制出来的。

在这里,将pyplot 缩写成 plt,是约定俗成的方式(大家都是这么用的~)

这里有个要注意的~

在Jupyter Notebook 里使用Matplotlib绘图时,要加上下面这一条代码:

%matplotlib inline

注:

这条命令的作用是将 Matplotlib 绘制的图形嵌入在当前页面中。而在桌面环境中绘图时,不需要添加此命令,而是在全部绘图代码之后追加plt.show( )。

2、画个最简单的折线图:

a=[1,2,3,4,5,6,7,6,5,4,3,2,1]
plt.plot(a)

在这里,我们导入了一个列表,Matplotlib 会默认将该列表作为y值,而x值会从0开始依次递增。而plt.plot( )是pyplot模块下绘制(折线图)的方法类。

一个简单的折线图就绘制出来了~

我们也可以自己定义横坐标:

a_x=[11,12,13,14,15,16,17,18,19,20,21,22,23]
plt.plot(a_x,a)

当然了,这是一个最最简单的例子,在 Matplotlib 中,还有各式各样很有趣的图,大部分图形样式的绘制方法都存在于pyplot模块中,我们只要更改后面的方法类名就可以更改图形的样式啦~

这里是一些常用的图:

柱状图:pyplot.bar

直方图:pyplot.barh

水平直方图:pyplot.broken_barh

等高线图:pyplot.contour

误差线:pyplot.errorbar

柱形图:pyplot.hist

水平柱状图:pyplot.hist2d

饼状图:pyplot.pie

量场图:pyplot.quiver

散点图:pyplot.scatter

我们还是以原来的数据为例,看看其他图的效果:

柱状图:

水平直方图:

我们还可以用plot画一个常见的正弦函数图:

import numpy as np
# 在 -2PI 和 2PI 之间等间距生成 1000 个值,也就是 X 坐标
x = np.linspace(-2*np.pi, 2*np.pi, 1000)
# 计算 y 坐标
y = np.sin(x)
plt.plot(x, y)

注意了~

尽管我们绘制出来的函数很像一条曲线,但实际上,在两点之间依旧是直线。这里看起来像曲线,是因为样本点相互挨得很近(我们取的是1000个点,因此会挨得很近)。

2、会最基本的绘制操作后,我们需要对我们的图形进行进一步的优化(让图更美观~)

matplotlib里,我们可以通过设置参数,来达到美化的效果。

下面是在折线图里,一些比较常用的参数:

alpha=设置线型的透明度,从 0.0 到 1.0

color=设置线型的颜色

fillstyle=设置线型的填充样式

linestyle=设置线型的样式

linewidth=设置线型的宽度

marker=设置标记点的样式

想要了解更多参数的小伙伴可以到官网看看哦(包括查看其它图形的)~

https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.plot.html​matplotlib.org

我们还是用原来的正弦函数来试验一下,这次再加上一条余弦函数。

x= np.linspace(-2 * np.pi, 2 * np.pi, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, color='r', linestyle='--', linewidth=2, alpha=0.7)
plt.plot(x, y2, color='g',  linewidth=2)

看上去好像挺不错的样子~

下面我们用饼状图来做个小例子(效果会更明显哦~)

首先我们先简单地绘制一个饼图:

list_pie=[2,4,6,8,10]
plt.pie(list_pie)

下面,我们进行参数设置:

explode = (0, 0, 0.1, 0, 0.2)  # 各类别的偏移半径
color = ['b', 'y', 'g', 'r', 'g']
plt.pie(list_pie, colors=color, explode=explode,shadow=True, autopct='%1.1f%%')     #设置阴影,偏移度,颜色
# 饼状图呈正圆
plt.axis('equal')

对比一下,是不是瞬间高大上了~

3、同时绘制多个图形(组合图形)

x=[1,2,3,4,5,6,7]
y1=[3,6,9,12,9,6,3]
y2=[2,9,11,8,6,4,3]
plt.bar(x, y1)
plt.plot(x, y2, '-o', color='r')

在这里,y1是柱状图,y2是折线图。只要将两个图形的代码放置在一起就可以绘制成组合图形了。

注意~

并不是任何的代码放在一起都是组合图。两张图的横坐标必须共享,才能够被 Matplotlib 自动判断为组合图效果~

4、确立图形位置

首先我们来看看这个图:

和我们日常的画架结构一样,在Matplotlib 中,也是有类似“画板”和“画布”的区别的。

figure:相当于绘画用的画板,

axes:相当于铺在画板上的画布。

也就是说,在同一块画板上,我们可以设置不同的画布,用来展示不同的图片。

让我们先来看一个小例子:

x= np.linspace(-2 * np.pi, 2 * np.pi, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig = plt.figure()  # 新建画板
axes1 = fig.add_axes([0.1, 0.1, 0.9, 0.9])  # 大画布
axes2 = fig.add_axes([0.2, 0.2, 0.3, 0.2])  # 小画布axes1.plot(x, y1, color='r', linestyle='--', linewidth=2, alpha=0.7)  # 大画布
axes2.plot(x, y2, color='g',  linewidth=2)  # 小画布

可以看到,我们的图形被放在了不同大小的画布上。

那如何控制我们的画布大小及位置呢?

大家可以看下图中add_axes的参数设置:

除此之外也可以看到,add_axes的主要功能,就是向我们设置的画板figure中添加画布。

当然,还有一种更常见的添加画布的方法,就是——subplots( )。

比如,在subplots(2,2,1 )中,

第一、二个参数代表共创建了2*2个画布,其中subplots(2,2,1 )表示第一个画布

我们来看看下面这个例子:(注意看subplots的设置哦~)

x= np.linspace(-2 * np.pi, 2 * np.pi, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
plt.subplot(2,1,1)
plt.plot(x, y1, color='r', linestyle='--', linewidth=2, alpha=0.7)
plt.subplot(2,1,2)
plt.plot(x, y2, color='g',  linewidth=2)

5、如何添加图表题目、坐标轴标题、以及图例等图表基本内容。

我们直接从例子出发:

fig, axes = plt.subplots()
plt.rcParams['font.sans-serif']=['SimHei']
axes.set_xlabel('X轴')  # 横坐标标题
axes.set_ylabel('Y轴') #纵坐标标题
axes.set_title('三角函数')  # 图表标题x= np.linspace(-2 * np.pi, 2 * np.pi, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
axes.plot(x, y1, color='r', linestyle='--', linewidth=2, alpha=0.7)
axes.plot(x, y2, color='g',  linewidth=2)axes.legend(["sin", "cos"], loc=0)  # 图例

set_xlabel:横坐标标题

set_ylabel:纵坐标标题

set_title: 图表标题

loc:标记图例位置,1,2,3,4依次代表:右上角、左上角、左下角,右下角;0代表自适应。

效果图:

注意~

在这里我多添加了一条代码:

plt.rcParams['font.sans-serif']=['SimHei']

这是因为我们输出的图例等包含中文,需要对格式进行设置。

然后,也有另一种方式,下面是我以前做的另一个图

import matplotlib
from matplotlib import pyplot as plt
myfont = matplotlib.font_manager.FontProperties(fname='C:WindowsFontssimsun.ttc')
y_beijing=[8180.900,7659.100,8130.400,7199.500,7818.500,7638.200,7969.500,8225.400,8266.400,8444.600,8103.500,8119.700]
x=range(1,13)
plt.figure(figsize=(8,6),dpi=80,num=4)
plt.plot(x,y_beijing,label='旅客人数月变化',color='yellow')
xtick_labels=['{}月'.format(i) for i in x]
plt.xticks(x,xtick_labels,FontProperties=myfont)
plt.yticks( range(7000,8500,500))
plt.title('北京机场吞吐量',FontProperties=myfont,fontsize=15)
plt.xlabel('月份',FontProperties=myfont,fontsize=15)
plt.ylabel('旅客人数/千人',FontProperties=myfont,fontsize=15)
plt.grid(alpha=0.3)
for x, y in zip(x, y_beijing):plt.text(x, y+0.4, '%.0f'%y, ha='center', va='bottom', fontsize=10)
plt.legend(prop=myfont)
plt.show()

可以看到,代码有一点点不同,但是仍然达到同样的效果。

其中,myfont=matplotlib.font_manager.FontProperties(fname='C:WindowsFontssimsun.ttc')这条代码也是由于中文输入的原因。

6、如何规范我们画图的习惯

1、通过plt.figure()或者plt.subplots()管理一个完整的图形对象。

2、在图形对象的基础上,再添加图表题目、坐标轴标题、以及图例等图表基本内容。


以上便是<python绘图库——Matplotlib及Seaborn使用(入门篇1)>的内容,感谢大家的细心阅读,同时欢迎感兴趣的小伙伴一起讨论、学习,想要了解更多内容的可以看我的其他文章,同时可以持续关注我的动态~

matplotlib中文文档_python绘图库——Matplotlib及Seaborn使用(入门篇1)相关推荐

  1. python安装绘图库_python绘图库Matplotlib的安装

    本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地 进行制图.Ma ...

  2. python的ppt库_Python绘图库matplotlib快速入门.ppt

    Python绘图库matplotlib快速入门 *;*;;快速绘图 matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表.(matplotlib_sim ...

  3. python绘制有箭头的直线_Python绘图库Matplotlib,如何绘制箭头?

    matplotlib中,常用arrow函数绘制箭头,该函数可通过以下两种方法调用. Axes.arrow(x, y, dx, dy, hold=None, **kwargs) 或 matplotlib ...

  4. python tkinter 中文文档_Python实现中文文档的简体与繁体互相转换

    封面图片:<Python程序设计实验指导书>,董付国编著,清华大学出版社,2019.4 ============= 本文重点是一个第三方工具的使用,首先从下面的地址下载这两个文件并存放于程 ...

  5. python安装绘图库matplotlib_Python基础教程:Python 2D绘图库 Matplotlib 简介和安装

    原标题:Python基础教程:Python 2D绘图库 Matplotlib 简介和安装 来自:Linux迷https://www.linuxmi.com/python-2d-matplotlib.h ...

  6. python绘图库seaborn_python绘图库——Matplotlib及Seaborn使用(入门篇1)

    在数据分析过程中,数据及模型可视化是无可避免的,同时这也是展示我们数据分析成果的最佳方式.因此,熟悉掌握绘图库的使用,对精进我们的数据分析技能起着不可替代的作用. 今天,我们就来了解一下python强 ...

  7. python怎么安装matplotlib-如何安装Python绘图库Matplotlib?

    如何安装Python绘图库Matplotlib? 2018-09-18 Matplotlib的安装方法多种多样,到底哪种方法是最好的,这取决于我们使用的是什么操作系统.已经安装了哪些软件以及想用Mat ...

  8. python绘图库seaborn_python绘图库——Matplotlib及Seaborn使用(入门篇2)

    在数据分析过程中,数据及模型可视化是无可避免的,同时这也是展示我们数据分析成果的最佳方式.因此,熟悉掌握绘图库的使用,对精进我们的数据分析技能起着不可替代的作用. 在上一篇中,我们掌握了Matplot ...

  9. python安装绘图库matplotlib_python绘图库Matplotlib的安装

    导读热词 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地 进行 ...

最新文章

  1. linux ip head check sun,linux panic 问题定位
  2. GD32如何替换STM32?
  3. noip2012-day2-t2
  4. 你真的会玩SQL吗?Case也疯狂
  5. UWP 使用OneDrive云存储2.x api(二)【全网首发】
  6. 一个好用的变换类TransformManager
  7. win7和win8双系统的问题
  8. mysql metadata lock(二)
  9. 按键精灵post教程_安卓按键精灵教程VIP按键精灵辅助post视频教程大漠插件编程实战...
  10. Chrome 启动页面被114篡改的修复
  11. [从零开始A31S]之安装虚拟机以及下载ubuntu
  12. 如何给证件照换底色;如何调整证件照大小
  13. Spring Security 使用
  14. 石墨文档网页视频链接批量保存到百度网盘
  15. 瑞吉外卖项目实践(个人精简升级版)
  16. java zip加密压缩_Java解压和压缩带密码的zip文件过程详解
  17. 计算机网络合集(除应用层之外)
  18. Latex特殊符号汇集
  19. 计算机组成原理---输入输出设备
  20. 尖峰在线培训 http://www.jianfengedu.com/

热门文章

  1. 矩阵乘法的优化及其在卷积中的应用
  2. 鹅厂是如何使用 Git 的?
  3. 3月9日起陆续开学!快来看看有没有你所在的省份
  4. 如何入门论文阅读综述小解答
  5. 标准访问控制列表和扩展的访问控制列表有什么区别??
  6. 使用OpenVINO加速Pytorch表情识别模型
  7. 模拟PLC 的圆弧插补方式在VC中绘制圆弧
  8. LightOJ 1095 Arrange the Numbers(容斥原理)
  9. IE6 IE7 不支持 JSON
  10. 基于开源、混合云 惠普Helion开年3款新品发布