matplotlib库 中级 Artist 介绍及使用Figure Axes Axis Tick 实例

本文详细介绍了matplotlib库中的Artist概念,包括Artist的分类、作用以及如何使用。通过创建Figure、Axes容器,理解它们的属性和方法,特别是Artist如何在图形上绘制。同时,文章探讨了Axis容器,包括Tick的相关属性,帮助读者掌握matplotlib的中级用法。
摘要由CSDN通过智能技术生成

目录

 一、Artist 介绍

 二、Artists常见属性及用法

三、对象容器

四、Figure 容器

五、Figure属性

 六、Axes 容器

七、 Axes属性

八、Axis 容器

九、Axis accessor 方法

十、Tick 容器

十一、Tick属性


 一、Artist 介绍

使用Artist 对象在画布上渲染。

Matplotlib API有三层:
        matplotlib.backend_bases.Figucanvas是图形绘制的区域
        matplotlib.backend_bases.Renderer是知道如何在figucanvas上绘制的对象
        而matplotlib.artist.Artist 是一个知道如何使用渲染器在画布上作画的对象

FigureCanvas Renderer 解决和用户界面(如 wxPython)或绘图语言(如 PostScript)间通信的所有细节。而Artists 解决figure,text,lines这些元素的呈现和布局相关的所有细节。通常95%的时间都会花在 Artists 上。

这就像你拿着画笔在画板上画画一样。你就是艺术家(Artist),拿着你的专用画笔(Renderer),在你面前的画板(FigureCanvas)尽情的释放想象力。

Artists 有两种类型:primitives(图元)和 containers (容器)。primitives 呈现的是我们想要在canvas上绘制的标准图形对象,比如 Line2D, Rectangle, Text, AxesImage containers 是用来放置它们的(Axes,Axis,Figure)。

绘图的标准步骤是:

  • 创建一个 figure 实例
  • 使用 figure 实例创建一个或多个 Axes 或 Subplot 实例
  • 使用 Axes实例方法创建 primitives

二、Artists常见属性及用法

函数 描述

alpha

设置透明度。值为[0,1]

animated

布尔值。用于控制绘制动画

axes

Artist 所在 axes 实例, 可能为 None

clip_box

裁剪 Artist 的边界框

clip_on

是否进行裁剪

clip_path

用于裁剪的 path

contains

检查 artist 是都包含选择点的函数

figure

Artist 所在 figure 实例, 可能是 None

label

文本 label

picker

控制对象选择的 python 对象

transform

transformation

visible

是否绘制 artist 的布尔值

zorder

决定绘制顺序的数字

rasterized

布尔值; 是否将向量转换为光栅图形(出于压缩& EPS透明度)

三、对象容器

        总共有两种对象: 图元容器。图元 就是你想要改变属性的东西(比如 Text 实例的 font,Line2D 的宽度等),当然 容器 也有一些属性。例如:Axes Artist 就是一个容器(containers),其中包含了很多 图元。也有一些其它属性,比如 xscale 用于控制 xaxis 刻度是 'linear' 还是 'log'。

四、Figure 容器

        顶层容器是 matplotlib.figure.Figure ,它包含了 figure 中的所有东西。figure 的背景就是存储在 Figure.patch 中的 Rectangle 实例。

        当使用 add_subplot 添加 subplots 或 使用 add_axes 添加 axes 时,这些东西最终都会被添加到 Figure.axes 中。

In [156]: fig = plt.figure()

In [157]: ax1 = fig.add_subplot(211)

In [158]: ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.3])

In [159]: ax1
Out[159]: <AxesSubplot:>

In [160]: print(fig.axes)
[<AxesSubplot:>, <matplotlib.axes._axes.Axes object at 0x7f0768702be0>]

        这是因为 figure 包含了 当前轴(current axes) 的概念。从而支持 pylab/pyplot 状态机(state machine),这就是当使用 pyplot 中的命令绘图时不需要指定 figure,axes 的原因,和matlab绘图时一样,所有的绘图操作默认都是针对当前轴的。

        添加和删除 axes 时不要直接操作 axes 列表,而是通过 add_subplot 和 add_axes 方法进行添加,使用 delaxes 方法执行删除操作。现在,你可以非常轻松的迭代 axes 列表,从而获取每一个 axes 实例并设置其属性。

        下面是一个打开所有axes 网格的例子,除此之外,你还可以设置很多属性。

for ax in fig.axes:
    ax.grid(True)

        figure 也包含属于自己的 texts, lines, patchs, images,你都可以直接添加 图元。

        figure 默认的坐标系统是 pixels坐标,即像素坐标(这不是通常需要的坐标),但可以通过设置 transform 参数控制。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值