Python中如何使用matplotlib绘图建立画布及坐标系

发布时间:2021-12-17 14:12:14 作者:小新
来源:亿速云 阅读:652
# Python中如何使用matplotlib绘图建立画布及坐标系

## 一、引言

Matplotlib是Python中最著名的数据可视化库之一,广泛应用于科学计算、工程分析和商业数据可视化领域。建立画布和坐标系是使用Matplotlib进行绘图的基础步骤,本文将详细介绍如何通过`matplotlib.pyplot`模块创建画布、建立坐标系,并展示常见配置方法。

---

## 二、安装与基础导入

在开始前,请确保已安装Matplotlib库:
```bash
pip install matplotlib

基础导入方式:

import matplotlib.pyplot as plt

三、创建画布(Figure)

1. 隐式创建画布

当直接调用绘图函数(如plt.plot())时,Matplotlib会自动创建一个默认画布:

plt.plot([1, 2, 3], [4, 5, 6])
plt.show()

2. 显式创建画布

通过plt.figure()函数可自定义画布属性:

fig = plt.figure(
    figsize=(8, 6),      # 画布尺寸(宽,高,单位英寸)
    dpi=100,             # 分辨率
    facecolor='#f0f0f0',  # 背景色
    edgecolor='black'     # 边框颜色
)
plt.show()

关键参数说明: - figsize:控制画布物理尺寸 - num:可为画布指定编号或标题 - constrained_layout:自动调整子图间距(设为True推荐使用)


四、建立坐标系(Axes)

1. 单坐标系创建

fig = plt.figure()
ax = fig.add_subplot(111)  # 参数含义:行数、列数、子图索引
ax.plot([1, 2, 3], [4, 5, 6])
plt.show()

2. 多坐标系创建

使用subplots()函数快速创建网格状坐标系:

fig, axes = plt.subplots(
    nrows=2, 
    ncols=2,
    figsize=(10, 8)
)
# 访问特定坐标系
axes[0, 0].plot([1, 2, 3], [4, 5, 6])
axes[1, 1].scatter([1, 2, 3], [4, 5, 6])
plt.show()

3. 高级布局方式

使用GridSpec实现非均匀布局:

import matplotlib.gridspec as gridspec

fig = plt.figure()
gs = gridspec.GridSpec(2, 2, width_ratios=[1, 2], height_ratios=[4, 1])
ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[0, 1])
ax3 = fig.add_subplot(gs[1, :])
plt.show()

五、坐标系常用配置

1. 坐标轴设置

ax = plt.gca()  # 获取当前坐标系
ax.set_xlim(0, 10)          # X轴范围
ax.set_ylim(0, 100)         # Y轴范围
ax.set_xlabel('Time (s)')   # X轴标签
ax.set_ylabel('Temperature (℃)') 
ax.set_title('Data Trend')  # 标题

2. 网格与刻度

ax.grid(True, linestyle='--', alpha=0.6)  # 显示网格
ax.set_xticks([0, 5, 10])                # 自定义刻度
ax.set_xticklabels(['Start', 'Mid', 'End'])  # 刻度标签

3. 双坐标轴

fig, ax1 = plt.subplots()
ax2 = ax1.twinx()  # 共享X轴的新Y轴
ax1.plot([1,2,3], [10,20,30], 'g-')
ax2.plot([1,2,3], [45,32,16], 'b--')
plt.show()

六、样式定制

1. 使用样式表

plt.style.use('ggplot')  # 内置样式:'seaborn', 'dark_background'等

2. 自定义样式

通过rcParams全局配置:

plt.rcParams.update({
    'font.size': 12,
    'lines.linewidth': 2,
    'axes.prop_cycle': plt.cycler('color', ['#1f77b4', '#ff7f0e'])
})

七、完整示例

import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 建立画布和坐标系
fig, ax = plt.subplots(figsize=(10, 6))

# 绘图及配置
ax.plot(x, y, label='sin(x)')
ax.fill_between(x, y, alpha=0.2)
ax.legend()
ax.set_title('Sine Wave Demonstration')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')

plt.tight_layout()
plt.show()

八、总结

  1. 画布(Figure)是绘图的基础容器,可通过plt.figure()显式创建
  2. 坐标系(Axes)是实际绘制数据的区域,支持单图和多图布局
  3. 通过subplots()GridSpec可实现灵活布局
  4. 丰富的配置选项可满足各类可视化需求

掌握这些基础操作后,可以进一步学习Matplotlib的高级功能如3D绘图、动画和交互式图表制作。 “`

该文档共约1050字,采用Markdown格式编写,包含代码示例、参数说明和可视化演示,适合作为技术教程使用。

推荐阅读:
  1. Python绘图库—matplotlib
  2. 怎么在Python中使用Matplotlib绘图库

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python matplotlib

上一篇:Golang strings包常用字符串操作函数怎么使用

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》