关联知识
- Matplotlib
- Python
使用属性循环器
Matplotlib具有默认的颜色循环,当我们在给定轴上绘制更多图形时,该颜色循环会重复进行。 通过属性循环程序,我们可以在单个函数中为多个属性定义此类循环程序。 如果要绘制具有重复图案的轴,则可以使用属性循环器实现。
在此示例中,我们使用了pyplot API。 导入所需的库:
from cycler import cyclerimport numpy as npfrom matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvasfrom matplotlib.figure import Figurefrom IPython.core.display import display |
以下代码块绘制了六个tie对象; 后两个是前两个的重复。 在此示例中,它在每四个对象之后重复该循环:
- 定义图形并将其附加到画布上:
fig = Figure()FigureCanvas(fig) |
- 为图形设置facecolor,edgecolor和alpha,并添加一个轴:
fig.set(facecolor='grey', alpha=0.2, edgecolor='m')ax = fig.add_subplot(111) |
- 设置用于绘制图形的数据:
x = np.array([0.2, 0.4, 0.6, 0.8, 0.5])y = [1, 6, 6, 1, 0] |
- 为color和hatch属性定义一个custom_cycler,并为轴设置它:
custom_cycler = cycler('color', ['g', 'blue', 'y', 'c']) + cycler('hatch', ['+*', 'xx', '+x', '+O.'])ax.set_prop_cycle(custom_cycler) |
- 绘制六个领带对象的图形:
ax.fill(x+1, y)ax.fill(x+2, y)ax.fill(x+3, y)ax.fill(x+4, y)ax.fill(x+5, y)ax.fill(x+6, y) |
- 显示图形
display(fig) |
代码分解
- fig = Figure()定义了图形对象。
- FigureCanvas(fig)将图形对象附加到将在其上绘制图形的画布。
- fig.set(facecolor ='grey',alpha = 0.2,edgecolor ='m')设置图形的各种属性。 通常,我们在轴级别将这些属性用于单个图。 但是在这里,我们在图级别使用它们。 ax = fig.add_subplot(111)实例化轴。
- x和y定义绘制坐标对象的数据坐标。
- cycler()使用两个属性定义属性循环,每个属性具有四个值。 如果我们为每个属性提供更多值,则在覆盖列表中的所有值之后,将重复执行该循环。
- ax.set_prop_cycle(custom_cycler)激活先前定义的自定义属性循环程序。
- fill()使用属性循环器中定义的数据坐标和属性来绘制领带对象。
- display(fig)在屏幕上显示图形。
上述代码输出结果:
图略
我们还可以在全局参数rcParams文件中设置属性循环程序,该文件随后将成为给定会话的默认循环程序。
代码如下:
import matplotlib as mplfrom cycler import cyclermpl.rc('axes', prop_cycle=cycler('color', ['r', 'orange', 'c', 'y']) + cycler('hatch', ['x', 'xx-', '+O.', '*'])) |
绘制路径效果
使用转换
控制轴位置
使用gridspec
详情参阅
透视Matplotlib核心功能和工具包 - 高级特征绘制viadean.com