Python绘图工具Matplotlib安装与使用,快速上手

简介: Python绘图工具Matplotlib安装与使用,快速上手

Matplotlib

1 什么是Matplotlib

Matplotlib 是一个用于绘制图表和可视化数据的 Python库。它提供了丰富的绘图工具,可以用于生成各种静态、交互式和动画图表。Matplotlib 是数据科学、机器学习和科学计算领域中最流行的绘图库之一。

是专门用于开发2D图表(包括3D图表)

以渐进、交互式方式实现数据可视化

对图像元素控制力强。

可输出PNG、PDF、SVG和EPS等多种格式

2 为什么要学习Matplotlib

可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。

  • 能将数据进行可视化,更直观的呈现
  • 使数据更加客观、更具说服力

例如下面两个图为数字展示和图形展示:

3 实现Matplotlib画图 — 折线图

3.1 matplotlib.pyplot模块

导包

matplotlib.pytplot包含了一系列类似于matlab的画图函数。

import matplotlib.pyplot as plt

3.2 图形绘制流程

1.创建画布 – plt.figure()

plt.figure(figsize=(), dpi=)

figsize: 指定图的长宽

dpi: 图像的清晰度,0-1清晰度逐渐增大

返回fig对象


2.绘制图像 – plt.plot(x, y)

以折线图为例


3.显示图像 – plt.show()

3.3 折线图绘制与显示

案例:展现上海一周的天气,比如从星期一到星期日的天气温度如下**

import matplotlib.pyplot as plt

# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 2.绘制折线图
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])

# 3.显示图像
plt.show()

4 散点图绘制

散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。

特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)

api:plt.scatter(x, y)

参数解释:

x,y分别是一组数据,可以用列表表示


案例:

需求:探究房屋面积和房屋价格的关系

房屋面积数据:

x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01, 20.67, 288.64,

163.56, 120.06, 207.83, 342.75, 147.9 , 53.06, 224.72, 29.51,

21.61, 483.21, 245.25, 399.25, 343.35]


房屋价格数据:

y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61, 24.9 , 239.34,

140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1 ,

30.74, 400.02, 205.35, 330.64, 283.45]

140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1 ,

30.74, 400.02, 205.35, 330.64, 283.45]

import matplotlib.pyplot as plt
import random

#设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字符集

plt.rcParams['axes.unicode_minus'] = False # 设置负号正常显示

# 0.准备数据
x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01,  20.67, 288.64,
       163.56, 120.06, 207.83, 342.75, 147.9 ,  53.06, 224.72,  29.51,
        21.61, 483.21, 245.25, 399.25, 343.35]
y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61,  24.9 , 239.34,
       140.32, 104.15, 176.84, 288.23, 128.79,  49.64, 191.74,  33.1 ,
        30.74, 400.02, 205.35, 330.64, 283.45]

# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 2.绘制散点图
plt.scatter(x, y)

# 3.显示图像
plt.show()
可见,房屋价格和面积成正相关
在这里插入图片描述

5 柱状图绘制

可见,房屋价格和面积成正相关

5 柱状图绘制

柱状图:排列在工作表的列或行中的数据可以绘制到柱状图中。

特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)

api:plt.bar(x, width, align=‘center’, **kwargs)

参数解读

Parameters:

x : 需要传递的数据

width : 柱状图的宽度

align : 每个柱状图的位置对齐方式

{‘center’, ‘edge’}, optional, default: ‘center’

**kwargs :

color:选择柱状图的颜色

案例:

需求-对比每部电影的票房收入

电影数据如下图所示:

准备数据

[‘雷神3:诸神黄昏’,‘正义联盟’,‘东方快车谋杀案’,‘寻梦环游记’,‘全球风暴’, ‘降魔传’,‘追捕’,‘七十七天’,‘密战’,‘狂兽’,‘其它’]

[73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]

绘制柱状图

代码:

import matplotlib.pyplot as plt
import random

#设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字符集

plt.rcParams['axes.unicode_minus'] = False # 设置负号正常显示

# 0.准备数据
# 电影名字
movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它']
# 横坐标
x = range(len(movie_name))
# 票房数据
y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]

# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 2.绘制柱状图
plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g','b'])

# 2.1b修改x轴的刻度显示
plt.xticks(x, movie_name)

# 2.2 添加网格显示
plt.grid(linestyle="--", alpha=0.5)

# 2.3 添加标题
plt.title("电影票房收入对比",fontsize=25)

# 3.显示图像
plt.show()

6 饼状图绘制

饼图:用于表示不同分类的占比情况,通过弧度大小来对比各种分类。

特点:分类数据的占比情况(占比)

api:plt.pie(x, labels=,autopct=,colors)

参数解读

Parameters:

x:数量,自动算百分比

labels:每部分名称

autopct:占比显示指定%1.2f%%

colors:每部分颜色

案例:

import matplotlib.pyplot as plt
import random

#设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字符集

plt.rcParams['axes.unicode_minus'] = False # 设置负号正常显示

# 0.准备数据
#饼状图,只要给了数字,程序会自动计算占比
x = [1,2,3,4,5]
label = ['class1','class2','class3','class4','class5']

# 1.创建画布
plt.figure()

# 2.绘制图形
#autopct表示显示每部分占比
plt.pie(x,labels=label,autopct="%.2f%%")



# 3.显示图像
plt.show()

如果想实现饼状图某个部分被抽取出去,可以借助explode参数

创建一个列表,被抽取的部分对应的值写成非零,其他部分写成0即可 该字段的意思是被抽取的部分中心距离原点的距离

explode = [0,0,0.1,0,0]

#绘制图形

#autopct表示显示每部分占比

plt.pie(x,labels=label,autopct=“%.2f%%”,explode=explode)


相关文章
|
4月前
|
机器学习/深度学习 监控 数据可视化
127_训练可视化:曲线分析工具 - 使用Matplotlib诊断过拟合的独特信号与深度训练状态解析
在2025年的LLM训练环境中,随着模型规模和复杂度的指数级增长,训练过程的可视化已经从简单的性能监控工具演变为模型健康状态的诊断系统。训练可视化不仅仅是绘制几条曲线,而是构建一个完整的训练神经系统,能够实时捕捉训练动态、预测潜在问题、优化训练策略,并最终确保模型达到最佳性能。
|
5月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
6月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
265 92
|
7月前
|
数据安全/隐私保护 Python
微信群成员导出工具, 微信群成员导出软件, 微信群管理工具软件【python】
这个工具提供了完整的微信群成员导出功能,包括登录微信、获取群列表、导出成员信息到Excel等功能
|
5月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
696 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
5月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
426 3
|
6月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1215 1
|
5月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
1005 0
|
6月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
6月前
|
安全 API 数据安全/隐私保护

推荐镜像

更多