欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

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

时间:2022-07-03 09:31:44|栏目:Python代码|点击:

前言

我们前面对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种图形方法满足日常需求

2. 绘制图形方法

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

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()

总结

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

上一篇:使用pyplot.matshow()函数添加绘图标题

栏    目:Python代码

下一篇:使用python装饰器验证配置文件示例

本文标题:Python matplotlib超详细教程实现图形绘制

本文地址:http://www.codeinn.net/misctech/206693.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有