Matplotlib 多边形颜色填充

在做各种实验之后,往往需要写报告,而写报告就需要制作各种图表。而图表又需要使用不同的颜色来区分数据,比如数据重叠区,比如数据交叉区。使用颜色来区分,让别人一眼就明白不同的区域,明白这些区域的作用。

要解决这些问题,那么就需要学会在matplotlib里怎么样来填充图形区域。先从简单的图形开始进行学习,比如下面就是填充三角形和四边形:

Matplotlib多边形颜色填充

主要通过调用函数fill()函数来进行填充,它的定义如下:

matplotlib.pyplot.fill(*args, data=None, **kwargs)

  • *args:这个参数主要填写有序数对和颜色。每个多边形可以使用x坐标和y坐标构造,只要把这些点连接一起,再把里面的空间进行指定的颜色填充。

  • ax.fill(x, y) # 使用默认的颜色填充一个多边形

  • ax.fill(x, y, “b”) # 使用蓝色填充一个多边形

  • ax.fill(x, y, x2, y2) # 使用默认颜色填充两个多边形

  • ax.fill(x, y, “b”, x2, y2, “r”) # 一个蓝色,一个红色

接着就可以看明白上面例子实现的代码了:

import numpy as np
import matplotlib.pyplot as plt



#
plt.figure('deepinout.com 极客笔记')
fig, host = plt.subplots()  #创建子图

host.grid(False)



host.set_xlim(0, 100)

host.set_ylim(0, 100)



#填充三角形

x = [10, 20, 30]

y = [20, 80, 20]



host.fill(x, y, color = 'b')



#填充四边形

x = [40, 50, 50, 40]

y = [20, 20, 40, 40]



host.fill(x, y, color = 'r')



plt.show()

在这个例子里非常简单,先填充一个三角形,接着填充一个四边形,它的数据直接定义在列表里。x表示X轴的坐标, y表示Y轴的坐标,当进行填充时,依次从X轴取一个坐标,再从Y轴取一个坐标,就可以构造一个点,再把这些点连接到一起,就完成一个密封的多边形,再进行填充指定的颜色。

在函数的定义里,可以看到参数data=None,这个参数主要是定义数据的来源方式,它是一个可以迭代的对象,比如数据来源于字典对象的文件。下面的例子演示这个参数的作用:

import numpy as np

import matplotlib.pyplot as plt



#
plt.figure('deepinout.com 极客笔记')
fig, host = plt.subplots()  #创建子图

host.grid(False)



host.set_xlim(0, 100)

host.set_ylim(0, 100)



#填充三角形

host.fill("time", "signal",

        data={"time": [0, 50, 80], "signal": [0, 60, 0]}, color = 'b')





plt.show()

可见,前面两个参数是两个字符串,它是字典里的key,接着多边形点就是从字典里依次地获取。显示的结果如下:

Matplotlib多边形颜色填充

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程