Python matplotlib超详细教程实现图形绘制

作者:编程简单学 时间:2023-04-20 06:37:53 

前言

我们前面对matplotlib模块底层结构学习,对其pyplot类(脚本层)类提供的绘制折线图、柱状图、饼图、直方图等统计图表的相关方法,列举往期文章如下。

Python利用 matplotlib 绘制直方图

Python用 matplotlib 绘制柱状图

python 用matplotlib绘制折线图详情

Python利用matplotlib实现饼图绘制

matplotlib 模块不仅提供了绘制统计图表的功能,还支持绘制圆形、正方形、矩形等各种图形

本期,我们来学习使用matplotlib模块绘制常见的图形吧,Let's go~

1. matplotlib.patches概述

matplotlib.patches 专门用来绘制图形的类,在该类是以Artist为基类

  • pathes 是专门绘制2D图形的类

  • patch 绘制的图形默认是以rc params设置

  • patch 模块提供多达10种图形方法满足日常需求

Python matplotlib超详细教程实现图形绘制

2. 绘制图形方法

对应matplotlib模块来说,patches类提供绘制圆形、椭圆形、矩形等图形方法

Python matplotlib超详细教程实现图形绘制

3. 绘制图形步骤

在matplotlib模块中,图表都是由figure、Axes和Axis三个基本元素组成,因此在绘制图形时,一般步骤主要有以下组成。

导入matplotlib pyplot和patches类


import matplotlib.pyplot as plt
import matplotlib.patches as mpatch

使用subplots()创建子图Axes对象


fig,ax =plt.subplots()

调用pathes类绘制图形的方法如绘制矩形Rectangle()


Rect = mpatch.Rectangle((0.2,0.75),0.4,0.4,color="r")

子图Axes对象调用set_xlim()和set_ylim坐标轴范围

patches默认情况下,x轴的坐标范围为(0,1),y轴的坐标范围为(0,1)


ax.set_xlim(-2,5)
ax.set_ylim(-2,5)

子图Axes对象调用add_patch()方法添加图形


ax.add_patch(Rect)

调用pyplot.show()展示图形

4. 绘制图形属性

设置透明度

关键字:alpha

取值类型为:浮点型

设置颜色

设置图形关键字:color

设置边框关键字:edgecolor

取值可选:

  • 表示颜色的英文单词:如红色"red"

  • 表示颜色单词的简称如:红色"r",黄色"y"

  • RGB格式:十六进制格式如"#88c999";(r,g,b)元组形式

5. 小试牛刀

学习完上面几节的知识后,我们在图表中绘画圆形、矩形和直线吧


def drawpicture():

fig,ax =plt.subplots()

Rect = mpatch.Rectangle((1,0.75),0.4,0.4,color="yellow",alpha=0.5)

Cri = mpatch.Circle((0,0),1,angle=30,color="pink",alpha=0.2,capstyle="round")

Py = mpatch.Arrow(1,2,2,2)

ax.set_xlim(-1,5)
   ax.set_ylim(-1,5)

ax.add_patch(Rect)
   ax.add_patch(Cri)
   ax.add_patch(Py)
   plt.show()

drawpicture()

Python matplotlib超详细教程实现图形绘制

总结

本期,我们对matplotlib绘制图形相关方法和步骤进行学习,在实际操作中,还需要大量进行练习才能更加熟练地使用

来源:https://blog.csdn.net/weixin_54556126/article/details/121438509

标签:Python,matplotlib,图形
0
投稿

猜你喜欢

  • javascript框架设计之框架分类及主要功能

    2024-04-18 09:33:40
  • 详解MySQL数据库中字符串的正确使用

    2010-06-20 15:01:00
  • mysql数据库乱码之保存越南文乱码解决方法

    2024-01-14 12:12:24
  • 浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估

    2023-08-05 18:46:48
  • python爬虫selenium模块详解

    2023-04-11 20:32:43
  • 一文总结MySQL中数学函数有哪些

    2024-01-28 11:24:09
  • Django用户认证系统如何实现自定义

    2021-02-03 07:54:38
  • 获取当前url

    2024-05-09 09:04:30
  • 关于Python-faker的函数效果一览

    2023-12-02 21:20:06
  • 用Dreamweaver设计自动关闭的网页

    2010-09-02 12:29:00
  • Python跑循环时内存泄露的解决方法

    2023-07-18 08:18:22
  • Python虚拟环境库virtualenvwrapper安装及使用

    2023-12-28 22:11:53
  • 详解python 3.6 安装json 模块(simplejson)

    2023-08-04 10:55:03
  • MySQL字符串前缀索引使用

    2024-01-22 17:58:58
  • perl脚本实现限制ssh最大登录次数(支持白名单)

    2022-04-09 02:56:56
  • asp如何做一个检索结果带链接的检索?

    2010-07-11 21:15:00
  • Linux安装Python3如何和系统自带的Python2并存

    2023-08-25 03:42:09
  • 浅析Git版本控制器使用

    2023-09-10 16:21:23
  • R语言属性知识点总结及实例

    2022-06-28 04:39:02
  • python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍

    2022-04-18 06:08:49
  • asp之家 网络编程 m.aspxhome.com