Matplotlib介绍:

       Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。

       Matplotlib 可以用来绘制各种静态,动态,交互式的图表。比如说散点图、柱状图等等。

Matplotlib库核心概念

1.** 图(Figure):整个绘图区域,相当于一个画布,可以包含多个子图(Axes)。
2.
 子图(Axes):图中的一个绘图区域,一个 Figure 可以有多个 Axes(比如分屏显示多个图表)。
3.
 坐标轴(Axis):每个 Axes 包含 x 轴和 y 轴,负责控制刻度、标签等。
4.
 绘图元素 **:如线条、点、文本、图例等,是构成图表的具体内容。

基本使用流程

  1. 导入 Matplotlib(通常使用 plt 作为别名)。
  2. 创建图(Figure)和子图(Axes)。
  3. 调用绘图函数(如 plot()scatter() 等)绘制图表。
  4. 添加标签、标题、图例等装饰元素。
  5. 显示或保存图表。

Matplotlib的安装:

1.pip install matplotlib

2.conda install matplotlib

(清华源:https://pypi.tuna.tsinghua.edu.cn/simple)

Matplotlib的导入:

import matplotlib.pyplot as plt

plot() 函数的基本用法

plot() 是数据可视化中常用的绘图函数,支持绘制点、线、曲线等图形。

语法示例:

import matplotlib.pyplot as plt
plt.plot(x, y, format_string, **kwargs)

  • x, y:数据点的横纵坐标(可省略x,默认生成0-N的序列)。
  • format_string:控制线条样式(颜色、线型、标记),如 'ro--' 表示红色圆点虚线。
  • kwargs:可选参数,如 linewidth(线宽)、label(图例标签)。

绘制简单线图

import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [2, 4, 1, 5]
plt.plot(x, y, 'b-', linewidth=2)  # 蓝色实线,线宽2
plt.title("Simple Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()

绘制散点图

通过设置标记样式(如 'o')和取消线型(linestyle='none')实现:

plt.plot(x, y, 'ro', linestyle='none', label='Points')  # 红色圆点
plt.legend()
plt.show()

多组数据绘制

叠加多个 plot() 调用可绘制多组数据:

y2 = [1, 3, 2, 4]
plt.plot(x, y, 'b-', label='Line 1')
plt.plot(x, y2, 'g--', label='Line 2')
plt.legend()
plt.show()

参数说明

  • 颜色'b'(蓝)、'g'(绿)、'r'(红)等。
  • 线型'-'(实线)、'--'(虚线)、':'(点线)。
  • 标记'o'(圆点)、's'(方块)、'^'(三角形)。

通过调整参数可灵活实现多种图表效果。

fmt 参数格式说明

fmt 参数用于定义绘图中的基本样式,包括标记(marker)、线条(line)和颜色(color)。其标准格式为:

fmt = '[marker][line][color]'

组成部分详解

标记(marker)
控制数据点的显示样式,常用选项包括:

  • .:点
  • o:圆圈
  • s:正方形
  • ^:三角形
  • *:星号

线条(line)
定义连接数据点的线条样式:

  • -:实线
  • --:虚线
  • ::点线
  • -.:点划线

颜色(color)
指定标记和线条的颜色,支持单字母缩写:

  • b:蓝色
  • g:绿色
  • r:红色
  • c:青色
  • m:洋红色
  • y:黄色
  • k:黑色
  • w:白色

使用示例

'o:r' 表示圆圈标记、点线、红色线条
's--b' 表示正方形标记、虚线、蓝色线条
'*g' 仅显示绿色星号标记(无连线)

Matplotlib 网格线

grid():来设置图表中的网格线。grid() 方法语法格式如下:

matplotlib.pyplot.grid(b=None, which='major', axis='both', )

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.title('TITLE')
plt.xlabel("x - label")
plt.ylabel("y - label")
plt.plot(x,y)
plt.grid()
plt.show()

设置x轴方向显示网格线:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.title('TITLE')
plt.xlabel("x - label")
plt.ylabel("y - label")
plt.plot(x,y)
plt.grid(axis='x')
plt.show()

网格线换色实例:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.title('TITLE')
plt.xlabel("x - label")
plt.ylabel("y - label")
plt.plot(x,y)
plt.grid(color='r', linestyle='--', linewidth=0.5)
plt.show()

subplot():

用于绘制多个子图,在绘图时需要指定位置。subplot(nrows, ncols, index)

import matplotlib.pyplot as plt
import numpy as np


xpoints = np.array([0, 6])
ypoints = np.array([0, 100])
plt.subplot(1, 2, 1)
plt.plot(xpoints, ypoints)
plt.title("plot 1")

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.title("plot 2")
plt.suptitle("TITLE")
plt.show()

scatter():绘制散点图

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
plt.scatter(x, y)
plt.show()

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐