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

'''
上一讲介绍了画布的划分,有时候想将多张图放在同一个绘图区域,
不想在每个绘图区域只绘制一幅图形,这时候借助共享坐标轴的方法实现在一个绘图区
绘制多幅图形的目的。
'''
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl mpl.rcParams["font.sans-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="r")
ax1.tick_params("y", color="b")
#将y轴标签,主刻度线和刻度标签设置
ax2 = ax1.twinx()
#实例ax2的主轴与实例ax1的x轴是共享的,实例ax2的刻度线和刻度标签在右侧轴脊处绘制
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()

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

'''
共享不同子区绘图区域的坐标轴的方法是subplots(2, 2, sharey=True),
sharey=True是一区,二区共享y轴,还有其他参数,row,col,all,none,
其中all和none分别等同True和False。
'''
import matplotlib.pyplot as plt
import numpy as np x1 = np.linspace(0, 2*np.pi, 400)
y1 = np.cos(x1) x2 = np.linspace(0.01, 10, 100)
y2 = np.cos(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)
#分成4个子区
ax1 = ax[0, 0]
ax1.plot(x1, y1)
#ax[0, 0]访问第一个子区
ax2 = ax[0, 1]
ax2.plot(x2, y2) ax3 = ax[1, 0]
ax3.scatter(x3, y3) ax4 = ax[1, 1]
ax4.plot(x4, y4) plt.show()

(3)将(2)中的plt.subplots(2, 2)改成plt.subplots(2, 2, sharex="all")-所有子区共享x轴

(4)参数sharex=“none”

与(2)相同

(5)参数sharex=“row”------->每一行x轴取值范围实现共享

(6)sharex="col"------------->每列共享x

(7)将共享坐标轴的子区之间的空隙去掉,似乎出了点问题,还是有空隙

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(0.0, 10.0, 200)
y = np.cos(x)*np.sin(x)
y2 = np.exp(-x)*np.sin(x)
y3 = 3*np.sin(x)
y4 = np.power(x, 0.5) fig, (ax1, ax2, ax3, ax4) = plt.subplots(4, 1, sharex="all") fig.subplots_adjust(hspace=0) ax1.plot(x, y, ls="-", lw=2)
ax1.set_yticks(np.arange(-0.6, 0.7, 0.2))
ax1.set_ylim(-0.7, 0.7)

(8)共享个别子区绘图区域的坐标轴

import matplotlib.pyplot as plt
import numpy as np 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.plot(x3, y3) ax4 = plt.subplot(224, sharex=ax1)
#与子区1共享x轴
ax4.plot(x4, y4) plt.show()

matplotlib学习日记(十)-共享绘图区域的坐标轴的更多相关文章

  1. 『Python』matplotlib共享绘图区域坐标轴

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

  2. matplotlib学习日记(十)-划分画布的主要函数

    (1)函数subplot()绘制网格区域中的几何形状相同的子区布局 import matplotlib.pyplot as plt import numpy as np '''函数subplot的介绍 ...

  3. matplotlib学习日记(一)------图表组成元素

      1.使用函数绘制matplotlib的图表组成元素 (1)函数plot---变量的变化趋势 import matplotlib.pyplot as plt import numpy as np x ...

  4. matplotlib学习日记(十一)---坐标轴高阶应用

    (一)设置坐标轴的位置和展示形式 (1)向画布中任意位置添加任意数量的坐标轴 ''' 通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法, 与subplot,subplots ...

  5. matplotlib学习日记(二)----图表组成练习

    ''' 将前面的知识进行练习 plot,scatter,legend等 ''' import matplotlib.pyplot as plt import numpy as np from matp ...

  6. Python学习日记(十八) 序列化模块

    什么是序列? 就是每一个元素被有序的排成一列 什么是序列化? 就是将原本的列表.字典等内容转化成字符串的过程 什么时候会用到序列化? 数据存储(把数据放在文件.数据库),网络传输等 序列化的目的 1. ...

  7. matplotlib学习日记(九)-图形样式

    (一)刻度线定位器和刻度格式器的使用方法 import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker impor ...

  8. matplotlib学习日记(八)----完善统计图

    (一)再说legend() import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 2.1, 0.1) y = np.p ...

  9. matplotlib学习日记(七)---误差棒图

    (一)误差棒图----误差置信区间的表示 import matplotlib.pyplot as plt import numpy as np x = np.linspace(0.1, 0.6, 10 ...

随机推荐

  1. 【P4178】Tree——点分治

    (题面来自luogu) 题目描述 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K 输入格式 N(n<=40000) 接下来n-1行边描述管道,按照题目中写的输入 ...

  2. Arduion学习(一)点亮三色发光二极管

    这是我接触Arduion以来第一个小实验 实验准备: 1.查阅相关资料,了解本次实验所用到的引脚.接口的相关知识. 2.准备Arduion板(本次实验所用到的型号为mega2560).三色发光二极管. ...

  3. MySQL查询练习2

    MySQL查询练习2 导读: 本次MySQL的查询语句是本人考试题目: 所有题目都已通过: 该查询练习并没有sql文件进行检查: 如果有书写以及其他错误欢迎指出. 题目正文: 1.找出借书超过5本的借 ...

  4. C/C++面试题:C++与C有什么不同?

    昨天,小编在一个讨论群里看到这样的对话     有人想要入学校编程俱乐部,面试时,学长问了她C++的区别,她没有答上来,就没有通过. 说到C和C++的区别,不只是进入学校社团有考核,出了学校,找工作面 ...

  5. 19_B门长时曝光APP

    知识很基础-- 前几天买了个单反,特别想拍B门长时间曝光的效果.后来想想不如自己写个APP,实现屏幕背景的随机颜色以及全屏显示文字. 先上图: 这两张图片的左侧都很亮,这是因为APP里面忘记把&quo ...

  6. JZOJ8月4日提高组反思

    JZOJ8月4日提高组反思 被一堆2018&2019&2020的巨佬暴打 又是愉快的爆0的一天呢 T1 看了看题 没想法 暴力走起 求个质因数呀,二分呀-- 然后就炸了 正解预处理加二 ...

  7. 排序--QuickSort 快排

    Quick の implementation 快排,就像它的名字一定,风一样的快.基本上算是最快的排序算法了.快排的基本思想是选择一个切分的元素.把这个元素排序了.所有这个元素左边的元素都小于这个元素 ...

  8. go结构体与方法

    go结构体相当于python中类的概念 结构体用来定义复杂的数据结构,存储很多相同的字段属性 1.结构体的定义以及简单实用 package main import ( "fmt" ...

  9. 「懒惰的美德」我用 python 写了个自动生成给文档生成索引的脚本

    我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库:PiperLiu / ACMOI_Journey,记录自己的刷题轨迹,并总结一下方法.心得.想到一个需求 ...

  10. 第15.26节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QListWidget详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 列表部件(List Widget)对应类QListWidget,是从QListView派生 ...