1. Matplotlib 数据可视化

Matplotlib 数据可视化 Day1

文章目录

前言

主要参考资料 Datawhale开源资料Matplotlib用户指南

一、初识Matplotlib

  • Matplotlib是一个Python 2D绘图库,用来绘制各种静态,动态,交互式的图表。
  • Matplotlib可用于Python脚本,Python和IPython Shell、Jupyter notebook,Web应用程序服务器和各种图形用户界面工具包等。
  • Matplotlib是强大的python数据可视化工具,我们所熟知的pandas和seaborn的绘图接口其实也是基于matplotlib所作的高级封装。
    1. Matplotlib 数据可视化

; 二、简单的绘图示例

1.安装Matplotlib

python -m pip install matplotlib

2.引入库及绘图

  • Matplotlib的图像是画在figure上的,每一个figure又包含了一个或多个axes(一个可以指定坐标系的子区域)。
  • 创建figure以及axes的方式是通过pyplot.subplots命令,创建axes以后,可用Axes.plot绘图。
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)

fig, ax = plt.subplots() # 创建一个包含一个axes的figure
ax.plot(x, y) # 绘制图像
plt.show()

1. Matplotlib 数据可视化

代码运行后自动打印出类似

  1. 在代码块最后加一个分号;
  2. 在代码块最后加一句plt.show()
  3. 在绘图时将绘图对象显式赋值给一个变量,如将plt.plot([1, 2, 3, 4]) 改成line =plt.plot([1, 2, 3, 4])

三、Figure的组成

  • 一个完整的matplotlib图像通常会包括以下四个层级,也被称为容器(container)。
  • 在matplotlib的世界中,通过各种命令方法来操纵图像中的每一个部分,从而达到数据可视化的最终效果。

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

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

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

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

四、绘图接口

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

1.OO模式

  • 显式创建图形(figure)和轴(axes),并在它们上调用方法,也被称为OO模式(object-oriented style)
  • 通过plt.subplot()命令来创建Figure和Axes,然后再对axes进行数据的绑定
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='cubic')
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend()
plt.show()

1. Matplotlib 数据可视化

2.pyplot模式

  • 依赖pyplot自动创建与管理figure和axes,以及使用pyplot函数进行绘图
  • 还可以通过一个更简单的方法来创建,matplotlib.pyplot方法能够直接在当前axes上绘制图像,如果用户未指定axes,matplotlib会帮你自动创建一个。
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()

1. Matplotlib 数据可视化

五、通用绘图模板

初学者只需牢记模板就足以应对大部分简单图表的绘制。

  • OO模式
import matplotlib.pyplot as plt
import numpy as np

1 准备数据
x = np.linspace(0, 2, 100)
y = x**2

2 设置绘图样式,这一步不是必须的,样式也可以在绘制图像中进行设置
mpl.rc('lines', linewidth=4, linestyle='-.')

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

4 绘制图像
ax.plot(x, y, label='linear')

5 添加标签,文字和图例
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend()

1. Matplotlib 数据可视化
  • pyplot模式
import matplotlib.pyplot as plt
import numpy as np

1 准备数据
x = np.linspace(0, 10, 100)
y1 = 2*x + 1
y2 = x**2

2 定义图像窗口
plt.figure(num=3, figsize=(8, 5))

3 画图
plt.plot(x, y2)
plt.plot(x, y1, color='green', linewidth=1.0, linestyle='--')

4 定义坐标轴范围及名称
plt.xlim((0, 5))
plt.ylim((0, 10))
plt.xlabel('x')
plt.ylabel('y')

5 定义坐标轴刻度及名称
plt.xticks()
plt.yticks([0, 2, 4, 6, 8, 10],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$', r'$Perfect$'])

6 设置图像边框颜色
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

7 调整刻度及边框位置
ax.xaxis.set_ticks_position('bottom')  #x轴刻度位置 top bottom
ax.spines['bottom'].set_position(('data', 4))
ax.yaxis.set_ticks_position('left')    #y轴刻度位置 left right
ax.spines['left'].set_position(('data',0))
plt.show()

1. Matplotlib 数据可视化

总结

简单介绍了matplotlib的使用,了解图的模块,记住绘图模板,可快速上手。

Original: https://blog.csdn.net/devilmaycry2401/article/details/124828552
Author: 顾往来径
Title: 1. Matplotlib 数据可视化

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/768222/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球