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()
效果图:
图表
目录
相关文章
|
16天前
|
XML JSON 数据库
Python的标准库
Python的标准库
138 77
|
17天前
|
XML JSON 数据库
Python的标准库
Python的标准库
44 11
|
1月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
110 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
17天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
59 8
|
25天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
34 4
|
3月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
3月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
62 1
|
3月前
|
存储 数据可视化 数据挖掘
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
71 10
|
3月前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
65 17
|
3月前
|
数据可视化 数据挖掘 API
使用Python进行数据可视化:探索Matplotlib和Seaborn库
【9月更文挑战第19天】在数据科学领域,将复杂的数据集转换成直观、易懂的图形是一项基本而关键的技能。本文旨在通过Python编程语言介绍两个强大的数据可视化库——Matplotlib和Seaborn,以及它们如何帮助数据分析师和研究人员揭示数据背后的故事。我们将从基础概念讲起,逐步深入到高级技巧,确保无论读者的背景如何,都能获得必要的知识和启发,以在自己的项目中实现有效的数据可视化。