您的当前位置:首页正文

Python 的 Matplotlib 数值可视化

2024-11-30 来源:个人技术集锦

1. Matplotlib 介绍

  Matplotlib 是最流行的用于绘制图表的 Python 库,是 Python 的 2D 绘图库。Matplotlib 的操作简单,只需几行代码就可以生成直方图、条形图、折线图、散点图等图形。Matplotlib 中应用最广泛的是 matplotlib.pyplot 模块。matplotlib.pyplot 是一个命令风格函数的集合,使得 Matplotlib 的机制更像 MATLAB。



2. 绘图基本语法与常用参数

2.1 pyplot 基础语法

2.1.1 创建画布与创建子图

  第一部分的主要作用是构建一个空白画布,并可以选择是否将整个画布划分为多个部分以便在同一幅图上绘制多个图形的情况。当只需绘制一幅图时,这部分内容可以省略。

函数名称 函数作用
plt.figure 创建一个空白画布,可以指定画布大小、像素
figure.add_subplot 创建并选中子图,可以指定子图行数、列数和选中图片的编号

2.1.2 添加画布内容

  第二部分是绘图的主体部分。其中添加标题、添加坐标轴名称、绘制图形等步骤是并列的,没有先后顺序。但是添加图例一定要在绘制图形之后。

函数名称 函数作用
plt.title 在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数
plt.xlabel 在当前图形中添加 x 轴名称,可以指定位置、颜色、字体大小等参数
plt.ylabel 在当前图形中添加 y 轴名称,可以指定位置、颜色、字体大小等参数
plt.xlim 指定当前图形 x 轴范围,只能确定一个数值区间,而无法使用字符串标识
plt.ylim 指定当前图形 y 轴范围,只能确定一个数值区间,而无法使用字符串标识
plt.xticks 指定 x 轴刻度的数目与取值
plt.yticks 指定 y 轴刻度的数目与取值
plt.legend 指定当前图形的图例,可以指定图例的大小、位置、标签

2.1.3 保存与显示图形

函数名称 函数作用
plt.savefig 保存绘制的图形,可以指定图形的分辨率、边缘的颜色等参数
plt.show 在本机中显示图形
# pyplot中的基础绘图语法
import numpy as np
import matplotlib.pyplot as plt
# %matplotlib inline              # 表示在行中显示图片,在命令行运行报错

data = np.arange(0,1,0.01)
plt.title('lines')                # 标题
plt.xlabel('x')                   # x轴名称
plt.ylabel('y')                   # y轴名称
plt.xlim((0,1))                   # x轴范围
plt.ylim((0,1))                   # y轴范围
plt.xticks([0,0.2,0.4,0.6,0.8,1]) # x轴刻度
plt.xticks([0,0.2,0.4,0.6,0.8,1]) # y轴刻度
plt.plot(data,data**2)            # y=x^2 曲线
plt.plot(data,data**4)            # y=x^4 曲线
plt.legend(['y=x^2','y=x^4'])     # 图例
plt.savefig('y=x^2.png')          # 保存图片
plt.show()                        # 显示图片


# 包含子图绘制的基础语法
rad = np.arange(0,np.pi*2,0.01)
# 第一幅图
p1 = plt.figure(figsize=(8,6),dpi=80)   # 确定画布大小(默认(6.4,4.8))及像素(默认100)
ax1 = p1.add_subplot(2,1,1)             # 创建一个2行1列的子图
plt.title('lines')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0,1))
plt.ylim((0,1))
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.plot(rad,rad**2)
plt.plot(rad,rad**4)
plt.legend(['y=x^2','y=x^4'])

# 第二幅子图
ax2 = p1.add_subplot(2,1,2) 
plt.title('sin/cos'<
显示全文