Python的Matplotlib库应用实例超详细教程

 更新时间:2025年01月26日 11:29:52   作者:小星袁  
这篇文章主要介绍了Python的Matplotlib库应用的相关资料,Matplotlib是一个强大的Python数据可视化库,支持绘制2D和3D图像,它提供了简单易用的API,广泛应用于数据分析和科学研究,需要的朋友可以参考下

前言

Matplotlib库是一款功能强大且灵活的Python数据可视化软件包,它支持跨平台运行,能够根据NumPy ndarray数组绘制高质量的2D图像(也支持部分3D图像)。Matplotlib提供了类MATLAB的绘图API,使得绘图过程简单直观,代码清晰易懂。它广泛应用于数据分析、科学研究、报告生成以及教育与培训等领域,用户可以通过它创建多样化的图表类型,如折线图、柱状图、散点图等,并对图表的各个元素进行高度定制化的调整。无论是简单的图表还是复杂的可视化需求,Matplotlib都能提供高质量的输出。

一、环境搭建

1.1 配置matplotlib库

pip install matplotlib

安装成功展示图: 

1.2 配置seaborn库

pip install seaborn

 安装成功展示图: 

1.3 配置Skimage库

pip install scikit-image

 安装成功展示图: 

二、二维图像

2.1 曲线(直线)可视化

import matplotlib.pyplot as plt
import numpy as np

X = np.linspace(1, 15)
Y = np.sin(X)
# 图像大小设置
plt.figure(figsize=(10,8))
# 绘制线
plt.plot(X, Y, color='red')
plt.xlabel('X')
plt.ylabel('Y')
# 设置图像标题名
plt.title("y = sin(X)")
# 是否添加网格
plt.grid(True)
# 绘制图像
plt.show()

2.2 曲线(虚线)可视化

import matplotlib.pyplot as plt
import numpy as np

X = np.linspace(1, 15)
Y = np.sin(X)
# 图像大小设置
plt.figure(figsize=(10,8))
# 绘制线 蓝色 虚线
plt.plot(X, Y, "b-.")
plt.xlabel(r"$\alpha$")
plt.ylabel(r"$\beta$")
# 设置图像标题名
plt.title("$y=\sum sin(x)$")
# 是否添加网格
plt.grid(True)
# 绘制图像
plt.show()

2.3 直方图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)

X = np.linspace(1, 15)
Y = np.sin(X)
# 图像大小设置
plt.figure(figsize=(10,8))
# 生成数据
data = np.random.randn(200, 1)
# 可视化
plt.hist(data, 10)
plt.xlabel("取值")
plt.ylabel("频数")
plt.title("直方")
# 绘制图像
plt.show()

2.4 阶梯图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib.pyplot import xticks

matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)

X = np.linspace(1, 15)
Y = np.sin(X)
# 图像大小设置
plt.figure(figsize=(10,8))
# 阶梯图设置
plt.step(X, Y, c = "r", label = "sin(x)", linewidth = 3)
# 添加辅助线
plt.plot(X, Y, "o--", color = "grey", alpha = 0.5)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Bar")
# 设置图例位置及大小
plt.legend(loc = "lower right", fontsize = "small")
# 设置X轴坐标系取值
xtick = [0, 5, 10, 15]
xticklabels = [str(x) + "万" for x in xtick]
# x轴的坐标取值,倾斜度为45°
plt.xticks(xtick, xticklabels, rotation = 45)
# 调整水平空间距离
plt.subplots_adjust(hspace = 0.5)
plt.show()

三、三维图像

3.1 3D曲面图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib.pyplot import xticks
from pyparsing import alphas
matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)

x = np.linspace(-4, 4, num = 50)
y = np.linspace(-4, 4, num = 50)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 3D曲面图可视化
fig = plt.figure(figsize=(6, 5))
# 设置3D坐标
ax1 = fig.add_subplot(1, 1, 1, projection = '3d')
# 绘制曲面图, rstride:行的跨度 cstride:列的跨度 alpha:透明度 cmap:颜色
ax1.plot_surface(X, Y, Z, rstride = 1, cstride = 1, alpha = 0.5, cmap = plt.cm.coolwarm)
# 绘制z轴方向的等高线
cset = ax1.contourf(X, Y, Z, zdir = 'z', offset = 1, cmap = plt.cm.CMRmap)
ax1.set_xlabel("X")
ax1.set_xlim(-4, 4)
ax1.set_ylabel("Y")
ax1.set_ylim(-4, 4)
ax1.set_zlabel("Z")
ax1.set_zlim(-1, 1)
ax1.set_title("曲面图和等高线")
plt.show()

 

3.2 3D散点图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib.pyplot import xticks
from pyparsing import alphas
matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)

theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)
z = np.linspace(-2, 2, 100)
r = z ** 2 + 1
# 在子图中绘制三维图像
fig = plt.figure(figsize=(10, 10))
# 将坐标系设置为3D坐标系
ax1 = fig.add_subplot(1, 1, 1, projection='3d')
ax1.plot(x, y, z, "b-")
ax1.view_init(elev = 20, azim = 25)
ax1.set_title("3D曲线图")
plt.show()

3.3 3D散点图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib.pyplot import xticks
from pyparsing import alphas
matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)

theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)
z = np.linspace(-2, 2, 100)
r = z ** 2 + 1
# 在子图中绘制三维图像
fig = plt.figure(figsize=(10, 10))
# 将坐标系设置为3D坐标系
ax1 = plt.subplot(1, 1, 1, projection='3d')
ax1.scatter3D(x, y, z, c = "r", s = 20)
ax1.view_init(elev = 20, azim = 25)
ax1.set_title("3D散点图")
plt.show()

总结 

到此这篇关于Python的Matplotlib库应用的文章就介绍到这了,更多相关Python Matplotlib库应用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python中的列表推导浅析

    python中的列表推导浅析

    这篇文章主要介绍了python中的列表推导,需要的朋友可以参考下
    2014-04-04
  • Pytorch torch.repeat_interleave()用法示例详解

    Pytorch torch.repeat_interleave()用法示例详解

    torch.repeat_interleave() 是 PyTorch 中的一个函数,用于按指定的方式重复张量中的元素,这篇文章主要介绍了Pytorch torch.repeat_interleave()用法示例详解,需要的朋友可以参考下
    2024-01-01
  • 利用python做表格数据处理

    利用python做表格数据处理

    这篇文章主要介绍了如何利用python做表格数据处理,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • Python实现快速计算24点游戏的示例代码

    Python实现快速计算24点游戏的示例代码

    这篇文章主要为大家详细介绍了Python如何实现快速计算24点游戏并获取表达式,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-12-12
  • Python爬虫实现爬取京东手机页面的图片(实例代码)

    Python爬虫实现爬取京东手机页面的图片(实例代码)

    下面小编就为大家分享一篇Python爬虫实现爬取京东手机页面的图片实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • Python实现基于标记的分水岭分割算法

    Python实现基于标记的分水岭分割算法

    分水岭技术是一种众所周知的分割算法,特别适用于提取图片中的相邻或重叠对象。本文将用Python实现基于标记的分水岭分割算法,感兴趣的可以了解一下
    2022-07-07
  • python serial串口通信示例详解

    python serial串口通信示例详解

    Python的serial库是一个用于串口通信的强大工具,它提供了一个简单而灵活的接口,可以方便地与串口设备进行通信,包括与驱动电机进行通信,这篇文章主要介绍了python serial串口通信,需要的朋友可以参考下
    2023-12-12
  • Pandas中把dataframe转成array的方法

    Pandas中把dataframe转成array的方法

    下面小编就为大家分享一篇Pandas中把dataframe转成array的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python画图工具Matplotlib库常用命令简述

    Python画图工具Matplotlib库常用命令简述

    这篇文章主要介绍了Python画图Matplotlib库常用命令简述总结,文中包含详细的图文示例,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • 用Python开发app后端有优势吗

    用Python开发app后端有优势吗

    在本篇文章里小编给大家整理的是关于app后端开发学PHP还是Python的先关问题内容,需要的朋友们可以参考下。
    2020-06-06

最新评论