Python 数据可视化:Matplotlib库的使用

简介: Matplotlib是一个第三方python 2D绘图库,利用它可以画出许多高质量的图像。只需几行代码即可生成直方图,条形图,饼图,散点图等。Matplotlib库的名字来源于MATLAB,模仿MATLAB构建,语法也十分相似。
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 数据可视化:Matplotlib库的使用

1.Matplotlib库简介

Matplotlib是一个第三方python 2D绘图库,利用它可以画出许多高质量的图像。只需几行代码即可生成直方图,条形图,饼图,散点图等。

Matplotlib库的名字来源于MATLAB,模仿MATLAB构建,语法也十分相似。


2.Matplotlib库安装

因为 Matplotlib库是第三方库,所以我们要先进行安装。

我们可以使用pip命令来直接安装:

pip install matplotlib
但这里我推荐直接安装 Anaconda,一个开源的 Python 发行版本,其包含了 Python、NumPy、Matplotlib 等180多个科学包及其依赖项。
官网地址: https://www.anaconda.com/

3.pyplot

pyplotMatplotlib库中最基础的模块,本篇文章主要展示 pyplot的使用。

我们平常使用时通常以如下形式导入库:

import matplotlib.pyplot as plt

3.1 基本绘图流程

使用Matplotlib库绘图一般遵循以下流程:

  1. 创建画布(可选)
  2. 创建子图并选定子图(可选)
  3. 为图像添加标题、设定图像参数
  4. 绘制图像
  5. 添加图例
  6. 保存图像或显示图像

3.2 常用方法

3.2.1 创建画布

使用 plt.figure()方法可以创建一块画布,可以通过参数指定它的大小和背景颜色:
plt.figure(figsize=None, facecolor=None)

3.2.2 创建子图并选定子图

使用 plt.subplot()方法可以在全局绘图区域中创建一个子图,它的语法格式如下:
plt.subplot(nrows, ncols, index, **kwargs)
plt.subplot(pos, **kwargs)
plt.subplot(**kwargs)
plt.subplot(ax)

一共4种创建方式:

  • 第一种是用3个参数,分别代表网格的行数 nrows,列数 ncols,索引号index。它们都是位置参数。
  • 第二种是用一个3位数的整数,每一位分别代表网格的行数,列数 ,索引号。pos也是是位置参数。
  • 第三种会用默认值创建一个子图。
  • 第四种则以一个axes为参数,创建子图。

除此之外,我们还可以用plt.axes(rect,axisbg='w')方法创建一个坐标系风格的子图:

plt.axes(rect,axisbg='w')
rect参数指定位置,用 axisbg参数指定背景颜色。

3.2.3 为图像添加标题、设定图像参数

首先, Matplotlib库默认是不支持中文的,使用中文会产生乱码,如果要使用中文可以在导入库后加入下列两行代码来临时修改配置文件:
plt.rcParams["font.sans-serif"]=["SimHei"] # 设置字体为黑体
plt.rcParams["axes.unicode_minus"]=False # 防止负号乱码
我们可以用 plt.title()方法为子图添加标题,也可以使用 plt.suptitle()方法为当前绘图区域添加中心标题。

使用plt.xlabel(s)plt.ylabel(s)方法可以分别设置当前x轴和y轴的标签。

使用plt.grid()方法可以设置图表中的网格线:

plt.grid(b=None, which='major', axis='both', **kwargs)

参数说明:

  • b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。
  • which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。
  • axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。
  • **kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度。

图像参数还有许多,更多请参见官方手册:https://matplotlib.org/

3.2.4 绘制图像

Matplotlib库可以绘制许多类型的图,这里以绘制曲线图为例。

使用plt.plot()方法可以绘制曲线图,语法结构如下:

plt.plot(x, y, format_string, **kwargs)

参数说明:

  • x:可选,表示X轴数据,类型为列表或数组。
  • y:表示Y轴数据,类型为列表或数组。
  • format_string:可选,由颜色字符、线条字符、标记字符组成。
  • **kwargs:多组(x,y,format_string),绘制多条曲线。

其中常用颜色字符有:

颜色字符 颜色
'b' 蓝色
'g' 绿色
'r'
'c' 青色
'm' 品红
'y' 黄色
'k'
'w' 白色
'#008000' RGB某颜色
'0.8' 灰度值
常用线条字符有:
线条字符 线条
'‐' 实线
'‐‐' 破折线
'‐.' 点划线
':' 虚线
''' ' 无线条
常用标记字符有:
标记字符 标记
"."
"," 像素点
"o" 实心圆
"v" 下三角
"^" 上三角
"<" 左三角
">" 右三角
"1" 下三叉
"2" 上三叉
"3" 左三叉
"4" 右三叉
"8" 八角形
"s" 正方形
"p" 五边形
"P" 加号(加粗)
"*" 星号
"h" 竖六边形
"H" 横六边形
"+" 加号
"x" 乘号 x
"X" 乘号(加粗)
"D" 菱形
"d" 瘦菱形
"|" 竖线
"_" 横线
'$...$' 渲染指定的字符。例如 "$f$" 以字母 f 为标记。
除了常用的曲线图外, Matplotlib库还可以绘制许多其他种类的图:
函数 说明
plt.plot() 绘制折线图
plt.scatter() 绘制散点图
plt.bar() 绘制柱状图
plt.barh() 绘制横向柱状图
plt.stem() 绘制火柴图
plt.step() 绘制阶梯图
plt.hist() 绘制直方图
plt.boxplot() 绘制箱线图
plt.errorbar() 绘制误差条图
plt.violinplot() 绘制小提琴图
plt.eventplot() 绘制尖峰栅格图
plt.hist2d() 绘制二维直方图/散点密度图
plt.hexbin() 绘制Hexbin散点图
plt.pie() 绘制扇形图
具体用法和参数,请参见官方手册: https://matplotlib.org/

3.2.5 添加图例

我们可以用 plt.legend()方法为子图添加图例,也可以使用 plt.figlegend()方法为全局绘图区域添加图例,传入一个列表参数来给每条线命名。

3.2.6 保存图像或显示图像

使用 plt.savefig()方法可以保存当前图像,参数为文件保存路径及文件名。

使用plt.show()方法可以显示当前图像。


4.代码实例

用我们所学的方法绘制一张曲线图吧:
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] # 设置字体为黑体
plt.rcParams["axes.unicode_minus"]=False # 防止负号乱码

plt.figure(figsize=(16, 9))
plt.suptitle("图表")

f1 = lambda x:x**0.5
f2 = lambda x:x
f3 = lambda x:x**2

x = list(range(0,6))
y1 = [f1(i) for i in x]
y2 = [f2(i) for i in x]
y3 = [f3(i) for i in x]

plt.subplot(221)
plt.plot(x,y1,'b-v')
plt.title("y=√x")

plt.subplot(222)
plt.plot(x,y2,'g--1')
plt.title("y=x")

plt.subplot(223)
plt.plot(x,y3,'r-.s')
plt.title("y=x^2")

plt.subplot(224)
plt.plot(x,y1,'b-v')
plt.plot(x,y2,'g--1')
plt.plot(x,y3,'r-.s')
plt.title("对比图")
plt.legend(["√x","x","x^2"])

plt.figlegend(["√x","x","x^2"])

plt.show()
效果图:
图表
目录
相关文章
|
6月前
|
数据可视化 关系型数据库 MySQL
基于python大数据的的海洋气象数据可视化平台
针对海洋气象数据量大、维度多的挑战,设计基于ECharts的可视化平台,结合Python、Django与MySQL,实现数据高效展示与交互分析,提升科研与决策效率。
|
7月前
|
机器学习/深度学习 数据可视化 搜索推荐
基于python的汽车数据可视化、推荐及预测系统
本研究围绕汽车数据可视化、推荐及预测系统展开,结合大数据与人工智能技术,旨在提升用户体验与市场竞争力。内容涵盖研究背景、意义、相关技术如 Python、ECharts、协同过滤及随机森林回归等,探讨如何挖掘汽车数据价值,实现个性化推荐与智能预测,为汽车行业智能化发展提供支持。
|
7月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
7月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1554 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
7月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
600 0
|
6月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
606 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
6月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
492 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
7月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
7月前
|
数据采集 搜索推荐 数据可视化
基于python大数据的商品数据可视化及推荐系统
本系统基于Python、Django与ECharts,构建大数据商品可视化及推荐平台。通过爬虫获取商品数据,利用可视化技术呈现销售趋势与用户行为,结合机器学习实现个性化推荐,助力电商精准营销与用户体验提升。
|
7月前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。

推荐镜像

更多