Matplotlib——初级
matplotlib是一个专门用来绘图的库,在分析数据的时候,使用它可以将数据进行可视化,更直观的呈现。下面是几个通过matplot绘制的图。
通过图形的绘制,我们可以很清晰地看到数据直接的关系,并对这些关系进行分析,如果是传统的一行行数据,在我们分析时是很不直观的。
Matplotlib图像结构
其他说明:
- 一个figure(画布)可以包含多个axes(坐标系/绘图区),但是一个axes只能属于一个figure。
- 一个axes(坐标系/绘图区)可以包含多个axis(坐标轴),包含两个即为2d坐标系,3个即为3d坐标系
- 辅助显示层为Axes(绘图区)内的除了根据数据绘制出的图像以外的内容,主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。该层的设置可使图像显示更加直观更加容易被用户理解,但又不会对图像产生实质的影响。
pyplot基本绘图功能介绍
matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言是面向过程的。利用函数的调用,MATLAB中可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。
matplotlib有一套完全仿照MATLAB的函数形式的绘图接口,那就是matplotlib.pyplot。pyplot是Matplotlib的子库,它提供了和matlab类似的绘图API,方便用户快速绘制2D图表。pyplot中基本包含了matplotlib的全部功能,我们一般也是对它进行操作的。
在使用的时候,我们可以通过下面语句进行数据的导入:
import matplotlib.pyplot as plt
让我们从例子中来看pyplot使用的基本操作。
import matplotlib.pyplot as plt # 导入模块 # 1)创建画布(容器层)
plt.figure(figsize=(10, 5)) # 10为绘图对象长度,5为宽度
# 2)绘制折线图(图像层)
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])
# 3)显示图像
plt.show()
通过上面代码,我们创建出了下面的图像。
创建画布
每次我们打算绘制一个图形的时候,都需要一个画布,有的地方也称它为绘图对象。一般用plt.figure()函数来创建一个画布,比如:
通过figsize参数,我们可以设置画布的长度和宽度,单位是英寸;通过dpi参数,我们可以指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80。上面例子中,图像的宽度为:10*80=800像素。可以看到和下面的结果是一致的。
绘制图像
我们通常使用plt.plot来绘制一个图像。我们绘制图像的时候是需要一个画布的,我们可以使用上面的figure来具体设置一个画布,如果不需要精确设置画布的话,我们使用plot时,Matplotlib会自动帮我们生成一个画布。
下面是两个例子,他们设置的效果是一样的:
plt.plot(x, y, label="$cos($x^2)", color="red", linewidth=2)
plt.plot(x, y, "r-", label="cos($x^2)$")
让我们通过例子了解一下这几个参数:
(1)x、y:这两个数很容易理解,就是两个变量。我们在坐标轴上要确定一个点往往要确定两个值:横坐标值和纵坐标值。我们绘制图像的时候有很多种,有折线图和曲线图,都可以用它来设置。具体它们两个设置的区别会在后面例子中讲解。
(2)第三个参数:在第二个例子中,我们设置了第二个参数"r-",它的意思是设置红色的实线。
(3)label:设置图例中的内容。有时我们需要添加的是一些数据公式,我们可以在字符串前后添加“$”符号,Matplotlib就会使用它内嵌的latex引擎绘制我们写入的数学公式。在一些文本设置的时候,我们也会使用$符号,比如:r"$reall\ bad$"。中间的反斜杠是因为$中空格是不识别的,要加反斜杠进行转义,这样显示的英文字体会好看很多。
(4)color:如果我们不使用第三个参数的设置,这个参数可以用来指定线条颜色。
(5)linewidth:用于指定曲线的宽度。
图像输出
图像的输出有两种方式,一个是在直接显示,一个是保存成图片到本地
(1)直接显示
我们可以通过plt.show()函数显示图像,显示后会释放画布资源,如果在显示图像之后保存图片,将只能保存空图片。
(2)保存图片到本地
我们可以通过plt.savefig()函数将图像保存到指定路径,这里需要注意:如果直接显示和保存到本地都要有的话,保存到本地的操作要写到show函数前。比如:plt.savefig("D:\\demo.png")。
我们还可以通过设置dpi参数指定图像的分辨率,比如:plt.savefig("D:\\demo.png", dpi=120)。
辅助显示层
我们通过plt.plot函数绘制完图形之后,是一个很朴素的图,所有我们通常会加入辅助显示层来让整个图像变得丰满,下面会介绍几个常用的设置。
(1)显示图例
如果只在plt.plot()中设置label还不能最终显示出图例,还需要通过plt.legend()将图例显示出来,比如:
plt.legend(loc="best")
它的其他参数设置,如下图所示:
注意:如果设置为best,matplotlib会自动找一个合适的位置显示图例。
(2)设置当前绘图区标题
比如:plt.title("我的Matplotlib图")。
(3)X、Y轴标题
比如:plt.xlabel("时间")、
plt.ylabel("温度")
(4)添加网格线
添加网格线我们使用函数:plt.grid()
综合例子
import matplotlib.pyplot as plt
import numpy as np x = np.linspace(-3, 3, 100) # 生成-3到3范围内的100个点。
y = x*4+1
z = x**2 plt.figure(figsize=(8,4))
plt.plot(x, y, label="$x*2+1$", color="red", linewidth=2)
plt.plot(x, z, "b--", label="$X^2$")
plt.plot([1, 2, 3, 4, 5, 6 ,7], [7,7,8,5,0.3,1,0.3], "k:", label="折线图")
plt.grid()
plt.legend(loc="best")
plt.show()
运行之后显示的图像如下:
Matplotlib三层架构总结
- 容器层
- 画板 Canvas
- 画布 Figure
- 绘制图形区 Axes
- X轴
- Y轴
- 辅助显示层
- 网格
- 刻度
- 刻度说明
- 图例说明
- 。。。
- 图像层
- 折线图
- 散点图
- 柱状图
- 饼图
- 直方图
Matplotlib——初级的更多相关文章
- Python 的 Matplotlib 画图库
Matplotlib安装 NumPy库方便数值运算,但枯燥的数据并不利于人们的直观理解. 数据需要可视化. Matplotlib:一个数据可视化函数库 使用前需要安装 利用Python自带 ...
- 【Python】一份非常好的Matplotlib教程
Matplotlib 教程 本文为译文,原文载于此,译文原载于此.本文欢迎转载,但请保留本段文字,尊重作者和译者的权益.谢谢.: ) 介绍 Matplotlib 可能是 Python 2D-绘图领域使 ...
- python 数据可视化(matplotlib)
matpotlib 官网 :https://matplotlib.org/index.html matplotlib 可视化示例:https://matplotlib.org/gallery/inde ...
- python入门-分类和回归各种初级算法
引自:http://www.cnblogs.com/taichu/p/5251332.html ########################### #说明: # 撰写本文的原因是,笔者在研究博文“ ...
- Matplotlib——中级
关于Matplotlib的愚见 初级中,我只是简单介绍了Matplotlib的使用方法,在中级部分,我系统地说一下我总结的内容. 上图是我画的关于Matplotlib几个对象之间的关系图.它们都来自于 ...
- Python数据分析-Matplotlib图标绘制
Matplotlib介绍 Matplotlib是一个强大的Python绘图和数据可视化的工具包. Matplotlib的主要功能 Matplotlib是python中的一个包,主要用于绘制2D图形(当 ...
- Matplotlib散点图、条形图、直方图-02
对比常用统计图 折线图: 特点:能够显示数据的变化趋势,反映事物的变化情况.(变化) 直方图: 特点:绘制连续性的数据,展示一组或者多组数据的分布情况(统计) 条形图: 特点:绘制离散的数据,能够一眼 ...
- Matplotlib介绍
目录 一. Matplotlib介绍 1 二. 初级绘制 1 1. 绘图简介 1 2. 在上面的过程中,主要就是下面三个元素: 1 三. 2D各种 ...
- 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)
马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...
随机推荐
- maven父子项目
maven搭建父子项目 1.先建立一个父项目,建立项目的时候,选择 Create a simple project 点击 next,填写以下信息 点击finish就可以了. 2.接下来要建立一个子项 ...
- elastic job 动态设置定时任务
1. 版本 <!-- import elastic-job lite core --> <dependency> <groupId>com.dangdang< ...
- jQuery和css3控制箭头丝滑旋转
问题: 我们经常会遇见点击一个小三角使之丝滑的旋转180度上下旋转,怎么实现呢,需要css3搭配jq 来处理 如图:1.点击前 2.点击后(效果丝滑旋转) 1.html ...
- OpenfileDialog选择照片的简单应用
OpenFileDialog openFileDlg = new OpenFileDialog(); openFileDlg.Title = "选择文件"; openFileDlg ...
- Django_MTV模型
创建DJango项目过程: 1:安装Django包 方式一:pip3 install django 方式二:pycharm-->file--->settings-->找到projec ...
- vs2013 c# 中调用 c 编写的dll出错的可能错误
先说出错原因: 堆栈调用顺序 解决办法: 使用 __stdcall 或 使用C#属性 CallingConvention 起因是我想在c#中调用c函数结果出错了 如下 C 头文件 ...
- ASPNET MVC Error 403.14
今天创建了一个新的ASPNET MVC 项目部署到本地, 生成成功后在浏览器中输入URL却发现报这个错 解决办法: 因为我的站点是4.5的,但是我没有设置Application Pool所以当前还是默 ...
- java excel转pdf 工具类
package com.elitel.hljhr.comm.web.main.controller; import java.io.File; import java.io.FileOutputStr ...
- eclipse通过maven进行打包并且对hdfs上的文件进行wordcount
在eclipse中配置自己的maven仓库 1.安装maven(用于管理仓库,jar包的管理) -1.解压maven安装包 -2.把maven添加到环境变量/etc/profile -3.添加mave ...
- Nginx配置虚拟机,url重写,防盗链
配置目录: · 虚拟主机 · PHP支持 · URL重写 · 防止盗链 · 持续更新… 一.虚拟主机 1.创建 文件格式:{域名}.conf 具体如下: $ s ...