1. 共享单一绘图区域的坐标轴

有时候,我们想将多张图形放在同一个绘图区域,不想在每个绘图区域只绘制一幅图形。这时候,就可以借助共享坐标轴的方法实现在一个绘图区域绘制多幅图形的目的。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.use('Qt5Agg')
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串 fig, ax1 = plt.subplots() t = np.arange(0.05, 10., 0.01)
s1 = np.exp(t)
ax1.plot(t, s1, c="b", ls="-") ax1.set_xlabel("x坐标轴")
ax1.set_ylabel("以e为底的指数", color="b")
ax1.tick_params("y", colors="b") ax2 = ax1.twinx()
s2 = np.cos(t ** 2)
ax2.plot(t, s2, c="r", ls=":") ax2.set_ylabel("余弦函数", color="r")
ax2.tick_params("y", colors="r") plt.show()

同样可以用twiny()方法共享y轴

2. 共享不同子区绘图区域的坐标轴

subplots()函数有两个命名关键字参数sharexsharey,有四种取值

  • 'row'
  • 'col'
  • 'all',等同于True
  • 'none',等同于False
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.use('Qt5Agg')
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串 x1 = np.linspace(0, 2 * np.pi, 400)
y1 = np.cos(x1 ** 2) x2 = np.linspace(0.01, 10, 100)
y2 = np.sin(x2) x3 = np.random.rand(100)
y3 = np.linspace(0, 3, 100) x4 = np.arange(0, 6, 0.5)
y4 = np.power(x4, 3) fig, ax = plt.subplots(2, 2) ax1 = ax[0, 0]
ax1.plot(x1, y1) ax2 = ax[0, 1]
ax2.plot(x2, y2) ax3 = ax[1, 0]
ax3.scatter(x3, y3) ax4 = ax[1, 1]
ax4.scatter(x4, y4) plt.show()

基本图形如图所示:

  • sharex='all'

  • sharex='none'

  • sharex='row'

  • sharex='col'

sharey类似

将共享坐标轴的子区之间的空隙去掉

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.use('Qt5Agg')
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串 x1 = np.linspace(0, 2 * np.pi, 400)
y1 = np.cos(x1 ** 2) x2 = np.linspace(0.01, 10, 100)
y2 = np.sin(x2) x3 = np.random.rand(100)
y3 = np.linspace(0, 3, 100) x4 = np.arange(0, 6, 0.5)
y4 = np.power(x4, 3) fig, ax = plt.subplots(2, 2, sharex='all', sharey='all')
fig.subplots_adjust(hspace=0, wspace=0) ax1 = ax[0, 0]
ax1.plot(x1, y1) ax2 = ax[0, 1]
ax2.plot(x2, y2) ax3 = ax[1, 0]
ax3.scatter(x3, y3) ax4 = ax[1, 1]
ax4.scatter(x4, y4) plt.show()

3. 共享个别子区绘图区域的坐标轴

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.use('Qt5Agg')
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串 x1 = np.linspace(0, 2 * np.pi, 400)
y1 = np.cos(x1 ** 2) x2 = np.linspace(0.01, 10, 100)
y2 = np.sin(x2) x3 = np.random.rand(100)
y3 = np.linspace(0, 3, 100) x4 = np.arange(0, 6, 0.5)
y4 = np.power(x4, 3) fig, ax = plt.subplots(2, 2) ax1 = plt.subplot(221)
ax1.plot(x1, y1) ax2 = plt.subplot(222)
ax2.plot(x2, y2) ax3 = plt.subplot(223)
ax3.scatter(x3, y3) ax4 = plt.subplot(224, sharex=ax1)
ax4.scatter(x4, y4) plt.show()

4. 优化坐标轴范围显示

plt.autoscale(enable=True, axis="both", tight=True)

『Python』matplotlib共享绘图区域坐标轴的更多相关文章

  1. 『Python』matplotlib坐标轴应用

    1. 设置坐标轴的位置和展示形式 import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl mpl.use ...

  2. 『Python』matplotlib初识

    1. 核心原理 使用matplotlib绘图的原理,主要就是理解figure(画布).axes(坐标系).axis(坐标轴)三者之间的关系. 下面这幅图更详细: 以"美院学生张三写生画画&q ...

  3. 『Python』matplotlib划分画布的主要函数

    1. subplot() 绘制网格区域中几何形状相同的子区布局 函数签名有两种: subplot(numRows, numCols, plotNum) subplot(CRN) 都是整数,意思是将画布 ...

  4. 『Python』matplotlib的imshow用法

    热力图是一种数据的图形化表示,具体而言,就是将二维数组中的元素用颜色表示.热力图之所以非常有用,是因为它能够从整体视角上展示数据,更确切的说是数值型数据. 使用imshow()函数可以非常容易地制作热 ...

  5. 『Python』matplotlib常用函数

    1. 绘制图表组成元素的主要函数 1.1 plot()--展现量的变化趋势 import numpy as np import matplotlib.pyplot as plt import matp ...

  6. 『Python』matplotlib实现GUI效果

    1. 类RadioButtons的使用方法 类似单选框 import numpy as np import matplotlib.pyplot as plt import matplotlib as ...

  7. 『Python』matplotlib实现动画效果

    一般而言,在绘制复杂动画时,主要借助模块animation来完成 import numpy as np import matplotlib.pyplot as plt import matplotli ...

  8. 『Python』matplotlib常用图表

    这里简要介绍几种统计图形的绘制方法,其他更多图形可以去matplotlib找examples魔改 1. 柱状图 柱状图主要是应用在定性数据的可视化场景中,或是离散数据类型的分布展示.例如,一个本科班级 ...

  9. matplotlib学习日记(十)-共享绘图区域的坐标轴

    (1)共享单一绘图区域的坐标轴 ''' 上一讲介绍了画布的划分,有时候想将多张图放在同一个绘图区域, 不想在每个绘图区域只绘制一幅图形,这时候借助共享坐标轴的方法实现在一个绘图区 绘制多幅图形的目的. ...

随机推荐

  1. 题解 P3943 星空

    题解 一道思维量巨大的题,很烧脑 考虑异或差分,设 \(d_i=a_i\;\;xor\;\;a_{i-1}\),那么对于翻转 \(a_i\sim a_j\) 就相当于 \(b_i\) 和 \(b_{j ...

  2. MySQL指定ip和端口连接数据库,并修改数据库密码

    一.指定ip和端口连接数据库 命令 mysql -u root -h (ip) -P (端口)-p 假设ip是:127.0.0.1:端口是:13326,连接的命令: mysql -u root -h ...

  3. mysql自带分区(不修改源码)

    SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'xw_user_appl ...

  4. 队列(Queue)\双端队列(Deque)

    队列(Queue)\双端队列(Deque) 队列(Queue) 双端队列(Deque) 算法应用 队列(Queue) 特点: 和栈不同,队列的最大特点是先进先出(FIFO),就好像按顺序排队一样.对于 ...

  5. Struts2之处理请求参数

    时间:2017-1-11 11:05 --Struts2中获取请求参数(重点)1.Struts2是一个MVC框架,那么分别表示什么?    View:JSP    Model:Action    Co ...

  6. MongoDB - 文档之间的关系 + _sort和投影

    1. 文档对象之间的关系 一对一 (one TO one) - 例如: 夫妻 (一个丈夫 对应 一个妻子) - 在MongoDB中, 可以通过内嵌文档的形式来体现出一对一的关系 演示: 首先在 my_ ...

  7. Android Studio 百度地图导航

    配置就不再多说了,上一篇已经详细说过了,这次就是根据经纬度坐标做地图导航,路径规划.直接上代码: package com.example.appview.mian_page.Frament.Anzhu ...

  8. 一键备份公众号的所有文章到PDF,再也不用担心想看的文章被删了

    有的时候,我们会发现收藏的某个微信公众号文章会被删或者和谐了,尤其是对自己非常实用的文章,一定会后悔当初怎么没有复制或者备份下来. 单篇的公众号文章要备份,随便百度一下就能找到非常多方法,这里就不多废 ...

  9. 字符型:char

    字符型:char 字符变量的定义和输出 字符变量用于存储一个单一字符,在C语言中用char表示,其中每个字符变量都会占用1个字节.在给字符型变量赋值时,需要用一对因为半角格式的单引号('   ')把字 ...

  10. Shell中常用的语句

    exit 完全中断脚本的执行 break 中断脚本的循环,但是会执行循环外的语句 continue 跳出本次循环,进行下一次循环 进一步了解三者的区别,有如下实验: 执行该脚本: 脚本正常运行情况: ...