首页 > 其他分享 >matplotlib绘图接口和绘制线性图

matplotlib绘图接口和绘制线性图

时间:2022-11-13 11:31:49浏览次数:44  
标签:plot plt 接口 绘图 matplotlib np 图形 sin


在深入使用​​matplotlib​​​之前你需要知道几个​​matplotlib​​​技巧,这些技巧能帮助你更快速掌握​​matplotlib​​。

导入matplotlib

和​​numpy​​​,​​pandas​​​一样,在导入​​matplotlib​​时我们也可以用一些常用的简写形式:

​pyplot​​是最常用的画图模块接口,功能非常强大。

import matplotlib as mplimport matplotlib.pyplot as plt

显示图像

开发环境的不同,显示图像的方式也就不一样,一般有三种开发环境,分别是脚本、​​IPython shell​​​、​​IPython Notebook​​。

在脚本中使用​​matplotlib​​​进行可视化时显示图像可以使用​​plt.show()​​。

在​​IPython shell​​​中使用​​matplotlib​​​可视化非常方便,使用​​%matplotlib​​​命令启动​​matplotlib​​​模式。之后的任何​​plt​​​命令都会自动打开一个图像窗口,当有新的命令,图像就会更新。但对已经画好的图像不会自动实时更新。对于这种可以使用​​plt.draw()​​强制更新。

在​​IPython Notebook​​​中画图和​​IPthon shell​​​类似,也需要使用​​%matplotlib​​​命令。图像的显示是嵌在​​IPython Notebook​​​页面中。有两种展示形式:​​%matplotlib notebook​​​交互式图形;​​%matplotlib inline​​静态图形。

​matplotlib​​​还可以直接将图像保存文件,通过​​plt.savefig("test.jpg")​​命令保存文件。

plt.savefig("test.jpg")

画图接口

​matplotlib​​​有两个画图接口:一个是便捷的​​matlab​​风格接口,另一个是功能更强大的面向对象接口。

​matplotlib​​​的​​matlab​​​接口许多语法都和​​MATLAB​​​类似,所以使用过​​MATLAB​​​的朋友们想必很快就能上手​​matplotlib​​。

import matplotlib.pyplot as plt#导入模块
plt.figure(figsize=(10,10))#创建图形,并设置大小为10 x 10
plt.subplot(2,1,1)#创建子图1(行,列,子图编号)
plt.plot([1,2,3,4], [1,2,3,4])
plt.subplot(2,1,2)#创建子图2(行,列,子图编号)
plt.plot([4,3,2,1], [1,2,3,4])
plt.show()

matplotlib绘图接口和绘制线性图_子图

面向对象接口可以适应更加复杂的场景,更好地控制图形,在画比较复杂的图形市,面向对象方法会更方便。通过下面的代码,可以用面向对象接口重新创建之前的图形。


绘制线形图

在所有图形中,最简单的应该就是线性方程​​y = f (x)​​​ 的可视化了。来看看如何创建这个简单的线形图。要画​​Matplotlib​​​图形时,都需要先创建一个图形​​fig​​​ 和一个坐标轴​​ax​​。创建图形与坐标轴的最简单做法是:

import matplotlib.pyplot as plt#导入模块
plt.style.use('seaborn-whitegrid')#设置matplotlib画图样式
fig = plt.figure()
ax = plt.axes()

matplotlib绘图接口和绘制线性图_子图_02

在​​Matplotlib​​​中,​​figure​​​(​​plt.Figure​​​类的一个实例)可以被看成是个能够容纳各种坐标轴、图形、文字和标签的容器。就像你在图中看到的那样,​​axes​​​(​​plt.Axes​​类的一个实例)是一个带有刻度和标签的矩形,最终会包含所有可视化的图形元素。

在这里我们一般使用变量​​fig​​​表示一个图形实例,用变量​​ax​​​表示一个坐标轴实例。接下来使用​​ax.plot​​画图,从简单的正弦曲线开始:

fig = plt.figure()
ax = plt.axes()
x = np.linspace(0, 10, 1000)
ax.plot(x, np.sin(x))

matplotlib绘图接口和绘制线性图_坐标轴_03

也可以使用​​pylab​​​接口画图,这时图形与坐标轴都在底层执行,执行结果和上图一样:​​plt.plot(x, np.sin(x))​

试想下如果我们重复调用​​plot​​命令会发生什么,它会在一张图中创建多条线:

plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x))

设置颜色和风格

在画图的过程中通常对图形的第一次调整是调整它线条的颜色与风格。

​plt.plot()​​​函数可以通过相应的参数设置颜色和风格,修改颜色使用​​color​​参数,它支持各种颜色值的字符串,具体使用如下:

plt.plot(x, np.sin(x - 0), color='blue') # 标准颜色名称
plt.plot(x, np.sin(x - 1), color='g') # 缩写颜色代码(rgbcmyk)
plt.plot(x, np.sin(x - 2), color='0.75') # 范围在0~1的灰度值
plt.plot(x, np.sin(x - 3), color='#FFDD44') # 十六进制(RRGGBB,00~FF)
plt.plot(x, np.sin(x - 4), color=(1.0,0.2,0.3)) # RGB元组,范围在0~1
plt.plot(x, np.sin(x - 5), color='chartreuse') # HTML颜色名称

matplotlib绘图接口和绘制线性图_子图_04

常用颜色对应值:

取值

颜色

​b​

​blue​

​g​

​green​

​r​

​red​

​c​

​cyan​

​m​

​magenta​

​y​

​yellow​

​k​

​black​

​w​

​white​

如果不指定颜色,​​matplotlib​​​会为多条线自动循环使用一组默认的颜色。设置样式使用​​linestyle​​参数:

plt.plot(x, x + 0, linestyle='solid')
plt.plot(x, x + 1, linestyle='dashed')
plt.plot(x, x + 2, linestyle='dashdot')
plt.plot(x, x + 3, linestyle='dotted')
#也可以用下面的简写形式
plt.plot(x, x + 4, linestyle='-') # 实线
plt.plot(x, x + 5, linestyle='--') # 虚线
plt.plot(x, x + 6, linestyle='-.') # 点划线
plt.plot(x, x + 7, linestyle=':') # 实点线

matplotlib绘图接口和绘制线性图_子图_05

还可以将​​linestyle​​​和​​color​​​编码组合起来,作为​​plt.plot()​​函数的一个非关键字参数使用:

plt.plot(x, x + 0, '-g') # 绿色实线
plt.plot(x, x + 1, '--c') # 青色虚线
plt.plot(x, x + 2, '-.k') # 黑色点划线
plt.plot(x, x + 3, ':r'); # 红色实点线

matplotlib绘图接口和绘制线性图_坐标轴_06

设置坐标轴上下限

虽然​​matplotlib​​​会自动为你的图形选择最合适的坐标轴上下限,但是有时自定义坐标轴上下线可能会更好。调整坐标轴上下限最基础的方式是​​plt.xlim()​​​和​​plt.ylim()​​:

plt.plot(x, np.sin(x))
plt.xlim(-1, 11)
plt.ylim(-1.5, 1.5)

matplotlib绘图接口和绘制线性图_python_07

如果你想要让坐标轴逆序显示,那么只需要逆序设置坐标轴刻度值就可以了。​​matplotlib​​​还有一个方法是​​plt.axis()​​​。通过传入[​​xmin​​​,​​xmax​​​,​​ymin​​​,​​ymax​​​]对应的值,这样就可以用一行代码设置​​x​​​和​​y​​的限值:

plt.plot(x, np.sin(x))
plt.axis([-1, 11, -1.5, 1.5])

matplotlib绘图接口和绘制线性图_坐标轴_08

还支持按照图形的内容自动收紧坐标轴,不留空白区域:




plt.plot(x, np.sin(x))
plt.axis('tight')

matplotlib绘图接口和绘制线性图_坐标轴_09

设置图形标签

图形标签与坐标轴标题是最简单的标签,设置方法如下:

plt.plot(x, np.sin(x))
plt.title("A Sine Curve")
plt.xlabel("x")
plt.ylabel("sin(x)");

matplotlib绘图接口和绘制线性图_坐标轴_10

标签:plot,plt,接口,绘图,matplotlib,np,图形,sin
From: https://blog.51cto.com/u_15870497/5847717

相关文章

  • beego下swagger自动更新接口信息和commentsRouter_controllers.go
    (1)在beego环境中,当更新了controllers目录下面的接口后,在swagger的web页面虽然可以看到更新后的接口,但无法正常运行,这是因为swagger的路由信息还没有更新(2)要更新swagger的路......
  • 小新学Java7-【接口、多态】
    一、接口1.接口概述接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK7及......
  • Eolink是国产API接口管理的无冕之王
    一、传统API接口管理的缺陷1、前言项目开发我们都知道在一个项目团队中是由很多角色组成,最常见团队的就是前端开发工程师、客户端开发工程师、服务端开发工程师组成一个团队......
  • Pytest接口测试框架实战项目搭建(三)—— 统一登录处理
    一、前言业务系统的登录均要经过统一登录系统S,本篇演示2个业务系统的登录,一个是内部业务系统C,一个是外部用户使用的系统W,因为账号密码以及headers信息都不一样,所以要......
  • 元进网络自动化(3)---Python自动给路由器配置接口IP
    利用Python自动登录到网络设备,根据回显不同来配置不同的参数,避免简单重复的劳动,提高网络相关工作的效率。【网络拓扑】【打印登录配置过程】H:\Alphism\venv\Scripts\python......
  • 【Java复健指南12】OOP高级03-抽象类与接口
    抽象类引出问题:​ 父类方法有时候具有不确定性小结:当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类例子:publicclas......
  • Java中的接口详解
    概述接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK7及以前),默认方法和静......
  • 一个简单的查询学生信息的接口测试
    Test作业提交学习笔记编写一个业务接口(登录,查找学生等)打包成jar包在本机上面执行相应的命令,通过浏览器访问接口获得数据。(可选)将该jar包放在服务器上面运行,通......
  • Pytest接口测试框架实战项目搭建(二)—— tools公共方法封装
    一、前言在项目中我们要频繁地用到log日志、request请求方法、断言等,所以我们可以把这些常用的方法封装成日志,下面将逐个文件讲述下,不会讲太细,但会把源码贴出来,还有一......
  • 服务器和存储可用管理接口 服务器 mgmt 存储是三个口
    exp是连接硬盘框的     1g 前m服务器:::  ......