【 Matplotlib绘图】

这篇具有很好参考价值的文章主要介绍了【 Matplotlib绘图】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Matplotlib介绍

Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表,可根据数据集(DataFrame,Series)自行定义x,y轴,绘制图形(线形图,柱状图,直方图,密度图,散布图等等),能够满足大部分需要。

  • Matplotlib最早是为了可视化癫痫病人的脑皮层电图相关的信号而研发,因为在函数的设计上参考了MATLAB,所以叫做Matplotlib。
  • 官方文档: https://matplotlib.org/
  • Matplotlib中最基础的模块是pyplot。

基本绘图流程

根据Matplotlib图像的4层图像结构,pyplot模块绘制图形基本都遵循一个流程,使用这个流程可以完成大部分图形的绘制。pyplot模块基本绘图流程主要分为3个部分,如下图所示。
【 Matplotlib绘图】

1.创建画布与创建子图

第一部分主要是构建出一张空白的画布,如果需要同时展示几个图形,可将画布划分为多个部分。然后使用对象方法来完成其余的工作,示例如下。

pic = plt.figure(figsize=(8,7), dpi = 80)  # 创建画布,尺寸为8×7,像素值为80
ax1 = pic.add_subplot(2, 1, 1)  # 划分为2×1图形阵,选择第1张图片

2.添加画布内容

第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后。
【 Matplotlib绘图】

3.图形保存与展示

函数名称 函数介绍
plt.savafig 保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数。
plt.show 在本机显示图形。

设置pyplot的动态rc参数

pyplot使用rc配置文件来自定义图形的各种默认属性,被称为rc配置或rc参数。 由于默认的pyplot字体并不支持中文字符的显示,因此需要通过设置font.sans-serif参数改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴中的负号无法显示,因此需要同时更改axes.unicode_minus参数。

  • plt.rcParams[‘font.sans-serif’] = ‘SimHei’ ## 设置中文显示
  • plt.rcParams[‘axes.unicode_minus’] = False
  • rc参数还可以设置文本、箱线图、坐标轴、刻度、图例、标记、图片、图像保存等属性。

线条常用的rc参数
针对线条常用的rc参数名称、解释与取值如下表所示。
【 Matplotlib绘图】
其中lines.linestyle参数4种取值的意义如下表所示。
【 Matplotlib绘图】
lines.marker参数的20种取值及其所代表的意义,如下表所示。
【 Matplotlib绘图】
管理线条属性的rc参数lines几乎可以控制线条的每一个细节,线条常用的rc参数修改前后对比示例如下代码所示。

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
pic = plt.figure(dpi = 80, figsize = (6, 6))
x = np.linspace(0, 1, 1000)
# 绘制第一张图(从左往右从上到下)
pic.add_subplot(2, 2, 1)  # 绘制2×2图形阵中第1张图片
plt.rcParams['lines.linestyle'] = '-.'  # 修改线条类型
plt.rcParams['lines.linewidth'] = 1  # 修改线条宽度
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第二张图
pic.add_subplot(2, 2, 2)
mpl.rc('lines', linestyle = '--', linewidth = 10)  # 以matplotlib.rc()函数命令方式修改rc参数
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第三张图
pic.add_subplot(2, 2, 3)
plt.rcParams['lines.marker'] = None  # 修改线条上点的形状
plt.rcParams['lines.linewidth'] = 3
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第四张图
pic.add_subplot(2, 2, 4)
plt.rcParams['lines.linestyle'] = ':'
plt.rcParams['lines.linewidth'] = 6
plt.plot(x, x ** 2)
plt.title('y = x^2')
plt.savefig('线条rc参数对比.png')#保存图片
plt.show()

运行结果:
【 Matplotlib绘图】
坐标轴常用的rc参数
同样,管理坐标轴属性的rc参数axes也能控制坐标轴的任意细节。坐标轴常用的rc参数修改如下所示。

x = np.linspace(0, 10, 1000)
plt.rcParams['axes.edgecolor'] = 'b'  # 轴颜色设置为蓝色
plt.rcParams['axes.grid'] = True  # 添加网格
plt.rcParams['axes.spines.top'] = False  # 去除顶部轴
plt.rcParams['axes.spines.right'] = False  # 去除右侧轴
plt.rcParams['axes.xmargin'] = 0.1  # x轴余留为区间长度的0.1倍
plt.plot(x, np.sin(x))
plt.show()

运行结果:
【 Matplotlib绘图】
更多的坐标轴常用的rc参数名称、解释、取值如下表所示
【 Matplotlib绘图】

分析特征关系常用图形

1.散点图

散点图(Scatter Diagram)又称为散点分布图,是以利用坐标点(散点)的分布形态反映特征间的相关关系的一种图形。实际中一般使用二维散点图,通过散点的疏密程度和变化趋势表示两个特征间关系。散点图有以下3个特点:
· 表现特征之间是否存在数值或者数量的关联趋势,关联趋势是线性的还是非线性的。
· 凸显出离群点(异常点),及对整体的影响。
· 数据量越大,能发挥的作用越好。
pyplot模块中使用scatter函数绘制散点图,其使用语法如下:
【 Matplotlib绘图】scatter函数常用参数及其说明如下表所示。
【 Matplotlib绘图】
使用scatter函数绘制2000~2017年各季度的国民生产总值散点图,如下代码所示。

import matplotlib.pyplot as plt
import numpy as np
data = np.load('./数据/国民经济核算季度数据.npz',allow_pickle=True)
name = data['columns']  # 提取columns数组,视为数据的标签
values = data['values']  # 提取values数组,数据的存在位置
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize = (8, 7)) 
plt.scatter(values[: ,0], values[: , 2], marker = 'o')
plt.xlabel('年份') 
plt.ylabel('生产总值(亿元)') 
plt.xticks(range(0, 70, 4), values[range(0, 70, 4), 1], rotation = 45)
plt.title('2000~2017年季度生产总值散点图')
plt.savefig('2000~2017年季度生产总值散点图.png')
plt.show()

运行结果:
【 Matplotlib绘图】

2.折线图

折线图(Line Chart)是将“散点”按照横坐标顺序用线段依次连接起来的图形。以折线的上升或下降,表示某一特征随另外一特征变化的增减以及总体变化趋势。一般用于展现某一特征随时间的变化趋势。pyplot模块中使用plot函数绘制折线图,其使用语法如下。

  • matplotlib.pyplot.plot(*args, **kwargs)
    plot函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数,如下表所示。
    【 Matplotlib绘图】
    其中color参数的8种常用颜色的缩写如下表所示。
    【 Matplotlib绘图】
    使用plot函数绘制2000~2017年各产业第一季度季度生产总值折线图,如下代码所示。
plt.rcParams['font.sans-serif'] = 'SimHei' 
plt.rcParams['axes.unicode_minus'] = False
plt.figure(dpi = 80, figsize = (8, 8))
y1 = values[: : 4, 3]
y2 = values[: : 4, 4]
y3 = values[: : 4, 5]
plt.plot(range(len(y1)), y1, linestyle = '-')
plt.plot(range(len(y2)), y2, linestyle = '--')
plt.plot(range(len(y3)), y3)
plt.xticks(range(len(y3)), values[: : 4, 1], rotation = 45)
plt.title('2000~2017年各产业第一季度折线图')
plt.legend(['第一产业', '第二产业', '第三产业'])
plt.savefig('各产业第一季度折线图.png')
plt.show()

运行结果:
【 Matplotlib绘图】

分析特征内部数据状态常用图形

1.直方图

直方图(Histogram)又称频数直方图,由一系列宽度相等、长度不等的长方形来展示特征的频数情况。长方形的宽度表示组距(数据范围的间隔),长度表示在给定间隔内的频数(或频率)与组距的比值,以长方形的面积来表示频数(或频率)。由于分组数据具有连续性,直方图的长方形通常是连续排列的。直方图可以比较直观地展现特征内部数据,便于分析其分布情况。
pyplot中使用hist函数绘制直方图,其基本使用语法如下。
【 Matplotlib绘图】
hist函数常用参数及其说明如下表所示。
【 Matplotlib绘图】
实例如下

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize = (8, 6), dpi = 100)
mu = 0
sigma = 1
x = np.random.normal(mu, sigma, 10000)  # 生成10000个服从标准正态分布数据
plt.hist(x, bins = 20, density = True, rwidth = 0.96)  # 绘制直方图
plt.title('标准正态分布数据直方图')
plt.savefig('标准正态分布数据直方图.png')
plt.show()

运行结果:
【 Matplotlib绘图】

2.柱状图

  • 柱状图(bar chart)是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。长条图亦可横向排列,或用多维方式表达。
  • 柱状图有别于直方图,柱状图无法显示数据在一个区间内的连续变化趋势。柱状图描述的是分类数据,回答的是每一个分类中『有多少?』这个问题。 需要注意的是,当柱状图显示的分类很多时会导致分类名重叠等显示问题。

pyplot中使用bar函数绘制条形图,其基本使用语法如下。
【 Matplotlib绘图】
bar函数在官方文档中只要求输入不定长参数,但其主要参数如下表所示。
【 Matplotlib绘图】

x = values[-1,3:6]
plt.bar(range(3),x,width = 0.5)
plt.title('2017年第一季度三大产业生产总值')
plt.xlabel('类别')
plt.ylabel('生产总值(亿元)')
plt.xticks(range(3),['第一产业','第二产业','第三产业'])
plt.show()

运行结果:
【 Matplotlib绘图】

3.饼图

饼图(Pie Graph)用于表示不同类别的占比情况,通过弧度大小来对比各种类别。饼图通过将一个圆饼按照类别的占比划分成多个区块,整个圆饼代表数据的总量,每个区块(圆弧)表示该分类占总体的比例大小。饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于每个类别相对于总数的大小。但因为对于面积大小的不敏感,某些情况下效果不是很好。
pyplot模块中使用pie函数绘制饼图,其使用语法如下。
【 Matplotlib绘图】
pie函数常用参数及其说明如下表所示。
【 Matplotlib绘图】

x = values[-1,3:6]
plt.title('2017年第一季度三大产业生产总值分布情况')
plt.pie(x,labels=['第一产业','第二产业','第三产业'],autopct='%0.2f%%',explode = [0.1,0,0])
plt.show()

运行结果:
【 Matplotlib绘图】

4.箱线图

  • 箱线图(Box Plot)又称箱须图,是利用数据中的最小值、上分位数、中位数、下四分位数与最大值这5个统计量来描述连续型特征变量的一种方法。它也可以粗略地看出数据是否具有对称性分布的分散程度等信息,特别可以用于对几个样本的比较。
  • 箱线图的上边缘为最大值,下边缘为最小值,但范围不超过盒型各端加1.5倍IQR(四分位距,即上四分位数与下四分位数的极差)的距离。超出上下边缘的值即视为异常值

pyplot模块中使用boxplot函数绘制箱线图,其基本使用语法如下。
【 Matplotlib绘图】
boxplot函数常用参数及其说明如下表所示。
【 Matplotlib绘图】

data = np.load('./数据/国民经济核算季度数据.npz',allow_pickle=True)
data.files#含有columns和values两个数组
values = data['values']  # 提取values数组,数据的存在位置
x = values[:,3:6]
plt.title('三大产业分布情况')
plt.xlabel('类别')
plt.ylabel('分布')
plt.boxplot(x,labels=['第一产业','第二产业','第三产业'])
plt.show()

运行结果:
【 Matplotlib绘图】文章来源地址https://www.toymoban.com/news/detail-495303.html

到了这里,关于【 Matplotlib绘图】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 数据分析——matplotlib 快速绘图

    matplotlib采用面向对象的技术来实现,因此组成图表的各个元素都是对象,在编写较大的应用程序时通过面向对象的方式使用matplotlib将更加有效。但是使用这种面向对象的调用接口进行绘图比较烦琐,因此matplotlib还提供了快速绘图的pyplot模块。本节首先介绍该模块的使用方法

    2024年02月11日
    浏览(47)
  • Python 面向对象绘图(Matplotlib篇-16)

    Python 面向对象绘图(Matplotlib篇-16)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹

    2024年01月20日
    浏览(38)
  • Python中最常用的5种线程锁,你都会用吗

    对于日常开发者来讲很少会使用到本章节的内容,但是对框架作者等是必备知识,同时也是高频的面试常见问题。 线程安全是多线程或多进程编程中的一个概念,在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的

    2024年02月08日
    浏览(35)
  • Python之Matplotlib绘图调节清晰度

    引言 使用python中的matplotlib.pyplot绘图的时候,如果将图片显示出来,或者另存为图片,常常会出现清晰度不够的问题,当然这种问题是对于png或者jpg这种格式的图片而言的,如果是生成svg或者pdf则不存在这种问题,但是png和jpg也是经常需要使用的图片格式,因此就需要想办法

    2024年02月01日
    浏览(45)
  • python matplotlib绘图过程中设置线条颜色

    👨🏻‍🎓博主介绍:大家好,我是大锤爱编程的博客_CSDN博客-大数据,Go,数据分析领域博主,有五年的数据开开发,有着丰富的数仓搭建、数据分析经验。我会在我的系列文章里面分享我学到的知识,希望能够帮助到大家🌟 🌈擅长领域:大数据、数据分析 🙏🏻如果本文章

    2023年04月15日
    浏览(40)
  • Matplotlib绘图知识小结--Python数据分析学习

    一、Pyplot子库绘制2D图表 1、Matplotlib Pyplot Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。 Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。 Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,

    2024年02月12日
    浏览(48)
  • Python数据可视化之matplotlib绘图教程

    目录 一、快速绘图 1. 折线图 2. 柱状图 3. 饼状图 4. 散点图 5. 图片保存  二、基本设置 1. 图片 2. 坐标轴 3. 刻度 4. 边距 5. 图例 6. 网格 7. 标题 8. 文本 9. 注释文本 10. 主题设置 11. 颜色 12. 线条样式 13. 标记形状 三、绘图进阶 1. 折线图 2. 条形图  3. 散点图 4. 饼状图 5. 多图并

    2024年02月04日
    浏览(47)
  • Python学习笔记(11-2):matplotlib绘图——图形绘制函数

    因为部分图形绘制函数共用了一套参数体系,在颜色、曲线形状等部分的使用方式也是一致的。所以,在讲解各类图形绘制之前,我们整体性地对各类通用参数进行一个整理,并在此基础上对于颜色(color)、数据点标记(marker)和曲线形式(linestyle)等几个通用参数进行相

    2024年02月06日
    浏览(58)
  • Anaconda环境配置Python绘图库Matplotlib的方法

      本文介绍在 Anaconda 环境中,安装 Python 语言 matplotlib 模块的方法。   在之前的文章中,我们多次介绍了 Python 语言 matplotlib 库的使用;而这篇文章,就介绍一下在 Anaconda 环境下,配置 matplotlib 库的方法。   首先,打开 Anaconda Prompt 软件,如下图所示。   在这里,

    2024年02月03日
    浏览(42)
  • Python常见库matplotlib之多个子图绘图

    第一章 Python常见库matplotlib之画图文字的中文显示 第二章 Python常见库matplotlib之画图中各个模块的含义及修改方式 第三章 Python常见库matplotlib之多个子图绘图 前两章介绍了单张图的绘图操作,这一章介绍下在一张图中画多个图的操作。我们把前一篇的程序稍微改动一下,上一

    2024年02月06日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包