Matplotlib2.元素容器

本文详细介绍了matplotlib的三层API,重点讲解Artist的概念和分类,包括基本图形元素如2DLines、patches、collections和images,以及图形对象容器如Figure、Axes、Axis和Tick。通过理解这些概念,读者能够更好地掌握matplotlib的使用技巧和自定义图形的能力。
摘要由CSDN通过智能技术生成

一、概述

1. matplotlib的三层api

matplotlib.backend_bases.FigureCanvas 绘图区(画布)
matplotlib.backend_bases.Renderer 渲染器(画笔)
matplotlib.artist.Artist 具体图表组件(作画,调用 Render 的接口在 Canvas 上作图)

其实,大部分时间都是与 Artist 类打交道。

2. Artist 的分类

Artist 有两种类型:primitvescontainers

primitive 是基本要素,它包含一些标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等。

container 是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis。

3. matplotlib 标准用法

matplotlib的标准使用流程为:
(1) 创建一个Figure实例
(2) 使用Figure实例创建一个或者多个Axes或Subplot实例
(3) 使用Axes实例的辅助方法来创建primitive

Axes 是一种重要容器,它可能是matplotlib API中最重要的类,并且我们大多数时间都花在和它打交道上。

import matplotlib.pyplot as plt
import numpy as np

# step 1
# 用 matplotlib.pyplot.figure() 创建了一个Figure实例
fig = plt.figure()

# step 2
# 然后用Figure实例创建了一个两行一列(即可以有两个subplot)的绘图区
# 在第一个位置创建一个subplot
ax = fig.add_subplot(2, 1, 1)
# 在第二个位置创建一个subplot
bx = fig.add_subplot(2, 1, 2)

# step 3
# 然后用Axes实例的方法画曲线
t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2 * np.pi * t)
line1, = ax.plot(t, s, color='blue', lw=2)
line2, = bx.plot(t, -s, color='red', lw=2)
plt.show()

sin

二、自定义 Artist 对象

1. Artist 属性

图形中每个元素对应一个 Artist ,且都有其对应的属性列表。

Patch是一个来源于MATLAB的名词,它是图形上颜色的一个2D补丁,包含rectangels-矩形,circles-圆 和 plygons-多边形。

Figure.patch 属性:是一个 Rectangle,代表图表的矩形框,可设置 figure 的背景色、透明度等。
Axes.patch 属性:也是 Rectangle,代表绘图坐标轴内部的矩形框(白底黑边),可设置 axes 的颜色、透明度等。

每个 Artist 都有以下属性:

  • alpha 透明度,0~1之间的浮点数
  • axes 返回这个 Artist 所属的 axes,可能为 None
  • figure 返回这个 Artist 所属的 figure,可能为 None
  • label 一个 text label
  • visible 布尔值,控制 Artist 是否绘制

2. 属性的调用

Artist 对象所有属性都有相应的 get_*set_* 函数进行读写;也可用 set 方法一次设置多个属性;可用 matplotlib.artist.getp 获取指定的属性,若不指定属性名则返回所有属性和值。

f.set_alpha(0.5)
a = f.get_alpha()
	
f.set(alpha=0.5, zorder=2)
matplotlib.artist.getp(f, 'alpha')
matplotlib.artist.getp(fig.patch)

三、基本元素-ptimitives

第一部分概述里提到,Artist包含两种对象:基本要素 primitives 和 容器 containers。此处介绍 primitives 的几种类型:曲线-Line2D,矩形-Rectangle,图像-image (其中文本-Text较为复杂,会在之后单独详细说明。)

1. 2DLines

matplotlib 中曲线绘制主要使用类 matplotlib.lines.Line2D 完成,基类是 matplotlib.artist.Artist。
构造函数:

class matplotlib.lines.Line2D(
	xdata, 
	ydata, 
	linewidth=None, 
	linestyle=None, 
	color=None, 
	marker=None, 
	markersize=None,
	markeredgewidth=None,
	markeredgecolor=None,
	markerfacecolor=None,
	markerfacecoloralt='none',
	fillstyle=None, 
	antialiased=None,
	dash_capstyle=None,
	solid_capstyle=None,
	dash_joinstyle=None,
	solid_joinstyle=None, 
	pickradius=5, 
	drawstyle=None, 
	markevery=None, 
	**kwargs)

其中常用的参数:

  • xdata li
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值