首页 > 编程语言 >python画图|横向填充两条线之间的区域

python画图|横向填充两条线之间的区域

时间:2024-09-25 23:19:51浏览次数:3  
标签:ax2 ax3 两条线 填充 python 画图 np x2 x1

前述已经学习了《python画图|竖向填充两条线之间的区域》,点击下方链接直达:

python画图|竖向填充两条线之间的区域-CSDN博客

现在我们尝试更换填充方向,转向横向填充。

【1】官网教程

首先点击官网链接,直达教程:

https://matplotlib.org/stable/gallery/lines_bars_and_markers/fill_betweenx_demo.html

官网教程高度简介,对此做一下解读。

【2】代码解读

首先是引入计算模块numpy和画图模块matplotlib:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

然后定义了自变量和因变量:

y = np.arange(0.0, 2, 0.01) #定义自变量
x1 = np.sin(2 * np.pi * y) #定义因变量
x2 = 1.2 * np.sin(4 * np.pi * y) #定义因变量

再之后定义了要画图:

fig, [ax1, ax2, ax3] = plt.subplots(1, 3, sharey=True, figsize=(6, 6)) #定义画图

对于常规图形来说,下一步直接输出图形即可,但为了实现对不同曲线之间的填充,图形画出之前需要先设置如何填充

横向填充和竖向填充的区别在于,横向填充调用fill_betweentx()函数:

ax1.fill_betweenx(y, 0, x1) #图像ax1填充x1和0之间的区域 #图像ax1填充x1和0之间的区域
ax1.set_title('between (x1, 0)')

ax2.fill_betweenx(y, x1, 1) #图像ax2填充x1和1之间的区域 #图像ax2填充x1和1之间的区域
ax2.set_title('between (x1, 1)')
ax2.set_xlabel('x')

ax3.fill_betweenx(y, x1, x2) #图像ax3填充x1和x2之间的区域 #图像ax3填充x1和x2之间的区域
ax3.set_title('between (x1, x2)')

最后输出图形:

plt.show()

图1

【3】代码修改

首先增加一些剖面线标记,分别设置step的形式:

ax1.fill_betweenx(y, 0, x1,interpolate=True,step='pre',hatch='/') #图像ax1填充x1和0之间的区域 #图像ax1填充x1和0之间的区域
ax1.set_title('between (x1, 0)')

ax2.fill_betweenx(y, x1, 1,step='post',hatch='+') #图像ax2填充x1和1之间的区域 #图像ax2填充x1和1之间的区域
ax2.set_title('between (x1, 1)')
ax2.set_xlabel('x')

ax3.fill_betweenx(y, x1, x2,step='mid',hatch='*') #图像ax3填充x1和x2之间的区域 #图像ax3填充x1和x2之间的区域
ax3.set_title('between (x1, x2)')

完整代码和输出结果为:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

y = np.arange(0.0, 2, 0.01) #定义自变量
x1 = np.sin(2 * np.pi * y) #定义因变量
x2 = 1.2 * np.sin(4 * np.pi * y) #定义因变量

fig, [ax1, ax2, ax3] = plt.subplots(1, 3, sharey=True, figsize=(6, 6)) #定义画图

ax1.fill_betweenx(y, 0, x1,interpolate=True,step='pre',hatch='/') #图像ax1填充x1和0之间的区域 #图像ax1填充x1和0之间的区域
ax1.set_title('between (x1, 0)')

ax2.fill_betweenx(y, x1, 1,step='post',hatch='+') #图像ax2填充x1和1之间的区域 #图像ax2填充x1和1之间的区域
ax2.set_title('between (x1, 1)')
ax2.set_xlabel('x')

ax3.fill_betweenx(y, x1, x2,step='mid',hatch='*') #图像ax3填充x1和x2之间的区域 #图像ax3填充x1和x2之间的区域
ax3.set_title('between (x1, x2)')

plt.show()

图2

图2是参考竖向填充偶 教程里增加剖面线后的结果。

【4】代码进阶

继续增加where来控制画图范围:

ax1.fill_betweenx(y, 0, x1,where=abs(y-1)<0.8,interpolate=True,step='pre',hatch='/') #图像ax1填充x1和0之间的区域 #图像ax1填充x1和0之间的区域
ax1.set_title('between (x1, 0)')

ax2.fill_betweenx(y, x1, 1,where=((y>0.5)),step='post',hatch='+') #图像ax2填充x1和1之间的区域 #图像ax2填充x1和1之间的区域

给ax1和ax2设置画图范围,得到的输出结果为:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

y = np.arange(0.0, 2, 0.01) #定义自变量
x1 = np.sin(2 * np.pi * y) #定义因变量
x2 = 1.2 * np.sin(4 * np.pi * y) #定义因变量

fig, [ax1, ax2, ax3] = plt.subplots(1, 3, sharey=True, figsize=(6, 6)) #定义画图

ax1.fill_betweenx(y, 0, x1,where=abs(y-1)<0.8,interpolate=True,step='pre',hatch='/') #图像ax1填充x1和0之间的区域 #图像ax1填充x1和0之间的区域
ax1.set_title('between (x1, 0)')

ax2.fill_betweenx(y, x1, 1,where=((y>0.5)),step='post',hatch='+') #图像ax2填充x1和1之间的区域 #图像ax2填充x1和1之间的区域
ax2.set_title('between (x1, 1)')
ax2.set_xlabel('x')

ax3.fill_betweenx(y, x1, x2,step='mid',hatch='*') #图像ax3填充x1和x2之间的区域 #图像ax3填充x1和x2之间的区域
ax3.set_title('between (x1, x2)')

plt.show()

图3

由图3可见,左侧两个图只输出了局部。

【5】总结

学习了横向填充两条线之间的区域,绘制了剖面线,并对填充区域做了限定。

标签:ax2,ax3,两条线,填充,python,画图,np,x2,x1
From: https://blog.csdn.net/weixin_44855046/article/details/142454839

相关文章

  • 【Python】Python中的进制转换操作
    【Python】Python中的进制转换操作1.十进制转其他进制转二进制使用bin()函数可以将十进制整数转换为二进制字符串,前缀为'0b'。decimal_number=10binary_string=bin(decimal_number)print(binary_string)#输出:0b1010转八进制使用oct()函数可以将十进......
  • 【鸟类识别系统】+计算机毕设项目+卷积神经网络算法+人工智能+深度学习+模型训练+Pyth
    一、介绍鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作......
  • 【动物识别系统】计算机毕设项目案例+Python卷积神经网络算法+模型训练+人工智能+深度
    一、介绍动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现......
  • 2024.9.24 Python与C++面试八股文
    1.externextern关键字用于在多个文件中引用同一个全局变量的声明在一个头文件中,如果这个变量声明了,但是在cpp文件中没找到他的定义,那么编译就会报错,但是如果加了extern,编译器就不会给头文件报错,而是给cpp文件报错,如果函数没定义的话。或者定义出错的话。2.关于反复调用简......
  • Python文件操作
    文章目录1.什么是文件?2.操作文件的步骤2.1打开文件2.2读数据2.3写数据2.4关闭文件3.写数据实例4.快捷读取数据5.备份文件1.什么是文件?那么文件的类型都有哪些呢?文件包括以下类型:文本文件:只包含文本字符,例如.txt、.html、.css、.js文件。图像文件:包含......
  • 04 python编码相关
    对于Python默认解释器编码:py2:asciipy3:utf-8如果想要修改默认编码,则可以使用:#-*-coding:utf-8-*-注意:对于操作文件时,要按照:以什么编写写入,就要用什么编码去打开。8、解释器#!/usr/bin/envpython#在linxu中指定解释器的路径#-*-coding:utf-8-*-环境头只......
  • Python笔记
    Python笔记(大数据方向)一、基本数据类型1、数字类型1.1、整型(int)i=100t=type(i)print(i,t)1.2、浮点型(float)f=12.14t=type(i)print(f,t)1.3、布尔型(False,True)b=Truet=type(b)print(b,t)2、字符串使用单引号将若干个字符括起来的序列,叫做字符串a1='这是......
  • Python中Cache的使用
    文章目录一、缓存的基础概念二、基础使用三、进阶使用四、外部缓存工具五、缓存的注意事项一、缓存的基础概念缓存(Cache)是一种在应用程序中提升性能的技术,它通过将一些数据临时存储在快速访问的存储介质(如内存)中,以减少数据的重复计算或重复读取。通常,缓存用于存储......
  • Logfire:Python 可观测性的强大工具
    Logfire是Pydantic团队推出的可观测性平台,为Python应用提供了深度洞察。它不仅仅是一个日志记录工具,更是一个全面的可观测性解决方案。Logfire的仪表板功能强大,提供了多个预构建的仪表板作为起点,如Web服务仪表板和系统衡量指标仪表板。Web服务仪表板可以显示请求总......
  • python编写第一个程序
     1、python是什么python是面向对象的解释型高级编程语言python是强类型的动态脚本语言2、编写第一个程序print("helloworld")运行py文件推荐使用方式:右键点击代码空白处,选择Run...3、bugSyntaxError:invalidcharacterinidentifier//输入错误print(“123”)#报错,......