matplotlib学习日记(十)-共享绘图区域的坐标轴
(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学习日记(十)-共享绘图区域的坐标轴的更多相关文章
- 『Python』matplotlib共享绘图区域坐标轴
1. 共享单一绘图区域的坐标轴 有时候,我们想将多张图形放在同一个绘图区域,不想在每个绘图区域只绘制一幅图形.这时候,就可以借助共享坐标轴的方法实现在一个绘图区域绘制多幅图形的目的. import n ...
- matplotlib学习日记(十)-划分画布的主要函数
(1)函数subplot()绘制网格区域中的几何形状相同的子区布局 import matplotlib.pyplot as plt import numpy as np '''函数subplot的介绍 ...
- matplotlib学习日记(一)------图表组成元素
1.使用函数绘制matplotlib的图表组成元素 (1)函数plot---变量的变化趋势 import matplotlib.pyplot as plt import numpy as np x ...
- matplotlib学习日记(十一)---坐标轴高阶应用
(一)设置坐标轴的位置和展示形式 (1)向画布中任意位置添加任意数量的坐标轴 ''' 通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法, 与subplot,subplots ...
- matplotlib学习日记(二)----图表组成练习
''' 将前面的知识进行练习 plot,scatter,legend等 ''' import matplotlib.pyplot as plt import numpy as np from matp ...
- Python学习日记(十八) 序列化模块
什么是序列? 就是每一个元素被有序的排成一列 什么是序列化? 就是将原本的列表.字典等内容转化成字符串的过程 什么时候会用到序列化? 数据存储(把数据放在文件.数据库),网络传输等 序列化的目的 1. ...
- matplotlib学习日记(九)-图形样式
(一)刻度线定位器和刻度格式器的使用方法 import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker impor ...
- matplotlib学习日记(八)----完善统计图
(一)再说legend() import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 2.1, 0.1) y = np.p ...
- matplotlib学习日记(七)---误差棒图
(一)误差棒图----误差置信区间的表示 import matplotlib.pyplot as plt import numpy as np x = np.linspace(0.1, 0.6, 10 ...
随机推荐
- C语言讲义——变量的输入
scanf("%_", &变量); 注意两点: 1.scanf的第一个参数:中只写占位符(%_),不要写别的内容(不是输出给谁看). 2.scanf的第二个参数:要加&am ...
- Snap Build Your Own Blocks输入中文解决办法
Snap Build Your Own Blocks输入中文解决办法 Snap! (formerly BYOB) is a visual, drag-and-drop programming lang ...
- Docker实战 | 第三篇:Docker安装Nginx,实现基于vue-element-admin框架构建的项目线上部署
一. 前言 在上一文中 点击跳转 通过IDEA集成Docker插件实现微服务的一键部署,但 youlai-mall 是前后端分离的项目,除了后端微服务的部署之外,当然还少不了前端工程的部署.所以本篇讲 ...
- 第9章 Python文件操作目录
第9章 Python文件操作 第9.1节 Python的文件打开函数open简介 第9.2节 Python的文件打开函数open详解 第9.3节 Python的文件行读取:readline 第9.4节 ...
- PyQt(Python+Qt)学习随笔:QTableWidget的属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 1.概述 除了从父类继承的属性外,在Designer中QTableWidget只有两个属性,就是行数 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象的dockOptions属性
dockOptions属性代表主窗口对浮动部件停靠的反应,其类型为枚举类型QMainWindow.DockOptions.相关取值及含义如下: 这些枚举值可以组合使用,仅控制如何在QMainWindo ...
- DVWA SQL Injection LOW
最近在学习SQL注入,初出茅庐,就从dvwa开始吧 sql注入可以通过sqlmap工具实现,为了更好地了解原理,这里主要是手工注入 注入的一般流程为: 1,找到注入点,此步骤可通过工具 2,判断注入类 ...
- 基于gin的golang web开发:服务间调用
微服务开发中服务间调用的主流方式有两种HTTP.RPC,HTTP相对来说比较简单.本文将使用 Resty 包来实现基于HTTP的微服务调用. Resty简介 Resty 是一个简单的HTTP和REST ...
- 题解-Little C Loves 3 III
Little C Loves 3 III 给定 \(n\) 和序列 \(a_0,a_1,\dots,a_{2^n-1}\) 和 \(b_0,b_1,\dots,b_{2^n-1}\),求序列 \(c_ ...
- MarkDown的练习_Java开发学习路径
MarkDown的练习 语言学习 C/C++语言 Java语言 基础四大件 数据结构与算法 操作系统 计算机网络 设计模式 数据库/SQL 私人令牌:42bb654f53941d5692e98b35f ...