Python matplotlib 绘制图形 前言 1 m

这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

前言

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

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

image.png

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

  1. matplotlib.patches概述

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

  • pathes 是专门绘制2D图形的类
  • patch 绘制的图形默认是以rc params设置
  • patch 模块提供多达10种图形方法满足日常需求

image.png

  1. 绘制图形方法

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

方法 作用
patches.Rectangle(xy,width,height,angle=0) 绘制矩形
patches.Polygon(xy) 绘制多边形
patches.Arc(xy,width,height,angle=0) 绘制椭圆形
patches.Circle(xy,radius) 绘制圆形
patches.Ellipse(xy,width,height,angle=0.0) 绘制椭圆形
patches.Arrow(x,y,dx,dy) 绘制剪头
patches.wedge(center,r,theta1,theta2,width) 绘制锲形
patches.PathPatch() 绘制多曲线图形
patches.FancyBboxPatch() 绘制花式图形框
patches.Line2D() 绘制线条
  1. 绘制图形步骤

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

  • 导入matplotlib pyplot和patches类
1
2
python复制代码import matplotlib.pyplot as plt
import matplotlib.patches as mpatch
  • 使用subplots()创建子图Axes对象
1
python复制代码fig,ax =plt.subplots()
  • 调用pathes类绘制图形的方法如绘制矩形Rectangle()
1
python复制代码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)
1
2
python复制代码ax.set_xlim(-2,5)
ax.set_ylim(-2,5)
  • 子图Axes对象调用add_patch()方法添加图形
1
python复制代码ax.add_patch(Rect)
  • 调用pyplot.show()展示图形
  1. 绘制图形属性

  • 设置透明度

+ 关键字:alpha
+ 取值类型为:浮点型
  • 设置颜色

+ 设置图形关键字:color
+ 设置边框关键字:edgecolor
+ 取值可选:
    - 表示颜色的英文单词:如红色"red"
    - 表示颜色单词的简称如:红色"r",黄色"y"
    - RGB格式:十六进制格式如"#88c999";(r,g,b)元组形式
  1. 小试牛刀

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
python复制代码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()

image.png

总结

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

以上是本期内容,欢迎大佬们点赞评论,下期见~

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%