首页 > 其他分享 >[matplotlib] Artist中的container

[matplotlib] Artist中的container

时间:2023-06-24 20:33:24浏览次数:41  
标签:container figure Artist 对象 axes lines matplotlib fig tick

Artist对象分为 primitives 和 containers 两种。primitives对象主要是我们想在figure上画出的各类图形对象。containers对象主要用来放置primitives对象,有四种,即 figure、axes、axis和tick。

1.Figure

创建figure:

import matplotlib.pyplot as plt

fig = plt.figure()

使用plt.subplot()和plt.subplot_mosiac()直接生成figure和axes。

figure有自己的primitives特性,也就是说有的primitives对象可以直接在figure上做图,不用创建axes,比如images、lines、patches和text。

import matplotlib.lines as lines

fig = plt.figure()

l1 = lines.Line2D([0, 1], [0, 1], transform=fig.transFigure, figure=fig)
l2 = lines.Line2D([0, 1], [1, 0], transform=fig.transFigure, figure=fig)
fig.lines.extend([l1, l2])

plt.show()

figure包含的artist对象包括:axes、patch、images、legends、patches、lines、texts,以上各特性除patch外均为对应对象的列表,patch是一个Rectangle对象。

2.Axes

在已有的figure上生成新的axes:

# 方法1:
ax1 = fig.add_subplot(211)

代码中三个数字分别表示fig上的axes布局为两横一列,ax1为第一个。

# 方法2:
ax2 = fig.add_axes([0.15, 0.1, 0.7, 0.3])

[]中的四个数字依次为新增axes的原点在figure中x坐标位置,原点在figure中y坐标位置,新增axes的x坐标长,新增axes的y坐标长。

创建的axes将加入fig.axes(一个axes 的list)中,可以使用迭代对figure上的axes进行操作,比如:

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

从figure中删除axes的方法:

ax1.remove
ax2.remove

axes对象和figure一样,也有对应各种primitive artist对象的特性,以列表形式保存axes上存在的各种primitives,比如axes.patches和axes.lines。
一般通过axes的方法(helper method)创建primitive artist对象,并且将这些对象加入对应的axes上,但也可以自己手动操作,不过介于各类primitives的创建过程,不建议直接向axes.patches等列表中直接添加对象,可以先创建好对象再用axes对象的add_patch方法添加到axes上去。

fig, ax = plt.subplots()
rect = matplotlib.patches.Rectangle((1, 1), width=5, height=12)
ax.add_patch(rect)

除了primitive artist对象,axes还可包含两个container artist对象,即:XAxis和YAxis。

axes包含的artist对象包括:artists、patch、collections(比如散点图)、images、lines、patches、texts、XAxis和YAxis。

3.Axis

axis对象用来容纳tick lines、grid lines、tick标签和axis标签的。
axes有xaxis和yaxis,xaxis可以分别设置左右两边的tick,yaxis可以分别设置上下两侧的tick。

4.Tick

tick包含的特性:

Attributes
tick1line 左边或下面的tick线
tick2line 右边或上面的tick线
gridline 格栅线
label1 tick1line的标签
label2 tick2line的标签

标签:container,figure,Artist,对象,axes,lines,matplotlib,fig,tick
From: https://www.cnblogs.com/jetpeng/p/17501644.html

相关文章

  • [matplotlib] Legend 图例
    组成legendentries图例项,每个项包括一个key和一个labellegendkeylegendlabellegendhandler即产生legendentry的相应的原对象。创建legendax.legend(handlers,labels)handlers和labels可以是列表,labels可以利用handler对象自己的label,也可以设置legend的时候重新......
  • [matplotlib] 基础知识
    基本架构脚本层(scripting)脚本层是Matplotlib结构中的最顶层。我们编写的绘图代码大部分代码都在该层运行,它的主要工作是负责生成图形与坐标系。美工层(artist)美工层是结构中的第二层,它提供了绘制图形的元素时的给各种功能,例如,绘制标题、轴标签、坐标刻度等。后端......
  • Codeforces 1603D. Artistic Partition
    题目链接:D-ArtisticPartition题目大意:要求将\([1,n]\)分成\(k\)段,使得每段对应的\(c(l,r)\)之和最小,其中\(c(l,r)=\sum_{i=l}^r\sum_{j=i}^r[\gcd(i,j)\gel]\)。首先注意到当\(r<2l\)时,\(c(l,r)=r-l+1\)。所以当\(2^k-1\gen\)时答案即为\(n\)。考虑\(\texttt......
  • wxpython使用matplotlib.pyplot绘制GUI嵌入式统计图
    在使用wxpython编写GUI时,如果需要在GUI上显示统计图,这里就可以用到matplotlib.pyplot;一、首先就是导入matplotlib.pyplot模块frommatplotlib.backends.backend_wxaggimportFigureCanvasWxAggasFigureCanvasimportmatplotlib.pyplotasplt然后就需要一个容器,可以理......
  • containerd服务相关
    一、Containerd概念在2016年12月14日,Docker公司宣布将containerd从Docker分离,由开源社区独立发展和运营。Containerd完全可以单独运行并管理容器,而Containerd的主要职责是镜像管理和容器执行。Containerd提供了containerd-shim接口封装层,向下继续对接runC项目,使得......
  • How to enable auto restart of a docker container on system reboot ?
    Howtoenableautorestartofadockercontaineronsystemreboot ?https://amalgjose.com/2021/02/12/how-to-enable-auto-restart-of-a-docker-container-on-system-reboot/#:~:text=How%20to%20enable%20auto%20restart%20of%20a%20docker,Ensure%20the%20docker%20co......
  • 软件测试|教你用matplotlib绘制热力图
    前言热力图,是一种通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的规则。例如,较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,较小的值由较冷的颜色表示,等等。当然,只要我们提供数据,Python就能够绘制出热力图。下面我们就来介绍一下如何......
  • container scale up/ down 原理 in kubernetes
    https://imroc.cc/kubernetes/best-practices/autoscaling/hpa-velocity.html 原理与误区HPA在进行扩缩容时,先是由固定的算法计算出期望副本数: 期望副本数=ceil[当前副本数*(当前指标/期望指标)]其中 当前指标/期望指标 的比例如果接近1(在容忍度范围内,默......
  • Docker CLI docker container export 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • container.io 相关命令
    ctr命令[containerd本身的CLI]1.查看命名空间列表ctrnsls2.导入镜像[-n用于指定命令空间,不指定的话默认default,则在k8s的crictl中看不到导入的镜像]ctr-n=k8s.ioimageimportcoreqi.tar3.查看镜像列表ctrimagesls4.查看容器列表ctrcls5.导出镜像ctrima......