栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Matplotlib数据可视化(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Matplotlib数据可视化(一)

Matplotlib数据可视化(一)

文章目录
  • 一、Matplotlib简介
  • 二、详情内容
    • 1.简单举例
    • 2.figuer组成
    • 3.绘图接口
    • 4.通用绘图模板

一、Matplotlib简介

Matplotlib是一个Python 2D绘图库,能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形,用来绘制各种静态,动态,交互式的图表。
Matplotlib可用于Python脚本,Python和IPython Shell、Jupyter notebook,Web应用程序服务器和各种图形用户界面工具包等。
Matplotlib是Python数据可视化库中的泰斗,它已经成为python中公认的数据可视化工具,我们所熟知的pandas和seaborn的绘图接口其实也是基于matplotlib所作的高级封装。

二、详情内容 1.简单举例

Matplotlib的图像是画在figure(如windows,jupyter窗体)上的,每一个figure又包含了一个或多个axes(一个可以指定坐标系的子区域)。
最简单的创建figure以及axes的方式是通过pyplot.subplots命令,创建axes以后,可以使用Axes.plot绘制最简易的折线图。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()  # 创建一个包含一个axes的figure
ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) # 绘制图像
plt.show()
print(ax)

也可以将代码简化为

import matplotlib.pyplot as plt

# fig, ax = plt.subplots()  # 创建一个包含一个axes的figure
# ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) # 绘制图像
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])
plt.show()
print(ax)
2.figuer组成

一个完整的matplotlib图像通常会包括以下四个层级,这些层级也被称为容器(container),通过各种命令方法来操纵图像中的每一个部分,从而达到数据可视化的最终效果,一副完整的图像实际上是各类子元素的集合。

Figure:顶层级,用来容纳所有绘图元素

Axes:matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成

Axis:axes的下属层级,用于处理所有和坐标轴,网格有关的元素

Tick:axis的下属层级,用来处理所有和刻度有关的元素


3.绘图接口

matplotlib提供了两种最常用的绘图接口

第一种
显式创建图形(figure)和轴(axes),并调用绘图方法,称为OO模式
通过plt.subplot()命令来创建Figure和Axes,然后再对axes进行数据的绑定
此类方法更清晰明了,但是编写较为复杂,适用于较为复杂的画图场景

import numpy as np
import matplotlib.pyplot as plat
x=np.linspace(0,2,100)

fig,ax=plt.subplots()
ax.plot(x,x,label='linear')
ax.plot(x,x**2,label='quadratic')
ax.plot(x,x**3,label='cublic')
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend()
plt.show()


第二种
依赖pyplot自动创建与管理figure和axes,以及使用pyplot函数进行绘图
还可以通过一个更简单的方法来创建,matplotlib.pyplot方法能够直接在当前axes上绘制图像,如果用户未指定axes,matplotlib会帮你自动创建一个。
此类方法编写简单,默认的 Figure 和 Axes 等对象会自动创建支持图形绘制,但在多对象情况下容易使对象混乱,适用于简单的画图场景

import numpy as np
import matplotlib.pyplot as plat
x = np.linspace(0, 2, 100)

plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()
4.通用绘图模板

OO通用模板

import numpy as np
import matplotlib.pyplot as mpl
import matplotlib.pyplot as plat
x = np.linspace(0,2,100)
y= x**2

#step2 设置绘图样式
mpl.rc('lines',linewidth=4,linestyle='--')

#step3 定义布局
fig,ax = plt.subplots()

#step4 绘制图像
ax.plot(x, x**2, label='a')
ax.plot(y, x**2, label='b')
#step5 添加标签,文字和图例
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("OO")
ax.legend()
plt.show()

pyplot通用模板

import numpy as np
import matplotlib.pyplot as mpl
import matplotlib.pyplot as plat
#step1 数据准备
x = np.linspace(0,2,100)
y= x**2

#step2 设置绘图样式
mpl.rc('lines',linewidth=4,linestyle='-.')

#step3 定义布局
fig,plt = plt.subplots()

#step4 绘制图像
plt.plot(x,y,label='linear')

#step5 添加标签,文字和图例
plt.set_xlabel('x label')
plt.set_ylabel('y label')
plt.set_title("pyplot")
plt.legend()
plat.show()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892536.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号