python - 在 matplotlib 中,如何在由两组不同数组定义的两条曲线之间进行填充?

标签 python matplotlib

我有两条由两组数组定义的曲线:(x1, y1)(x2, y2) 我想在它们之间填充多边形。所有数组的长度都相同,但 x1x2 包含不同的值。

plt.fill_between(x, y1, y2) 要求两条曲线共享相同的 x 数组。

我该如何做 fill_between(x1, y1, x2, y2) 之类的事情?

例如如果:

x1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0])y1 = np.array([3.0, 2.0, 3.0, 2.0, 3.0]) 定义第一条曲线

x2 = np.array([1.5, 2.5 ,3.5 ,4.5 , 5.5])y2 = np.array([5.0, 6.0, 7.0, 8.0, 9.0]) 定义第二个。

如何使用四个多边形(左右边界不需要垂直)在曲线 (x1, y1)(x2, y2) 之间填充颜色?

澄清一下,四个多边形(A、B、C、D)的坐标是:

A: [(1.0, 3.0), (1.5, 5.0), (2.5, 6.0), (2.0, 2.0)]
B: [(2.0, 2.0), (2.5, 6.0), (3.5, 7.0), (3.0, 3.0)]
C: [(3.0, 3.0), (3.5, 7.0), (4.5, 8.0), (4.0, 2.0)]
D: [(4.0, 2.0), (4.5, 8.0), (5.5, 9.0), (5.0, 3.0)]

最佳答案

我正在努力明确地解释您的问题,但我认为您只想使用 fill,例如:

import numpy as np
import matplotlib.pyplot as plt

x1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
y1 = np.array([3.0, 2.0, 3.0, 2.0, 3.0])

x2 = np.array([1.5, 2.5, 3.5, 4.5, 5.5])
y2 = np.array([5.0, 6.0, 7.0, 8.0, 9.0])

plt.plot(x1, y1, 'o')
plt.plot(x2, y2, 'x')

plt.fill(
    np.append(x1, x2[::-1]),
    np.append(y1, y2[::-1]),
)

给你

this plot

关于python - 在 matplotlib 中,如何在由两组不同数组定义的两条曲线之间进行填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54255797/

相关文章:

python - SQLAlchemy 子字符串在字符串中

python - 潜在错误 : pandas MultiIndex and 0-d sized values

python - Matplotlib/Seaborn barplot——x 轴上的字符串

python - 如何在 Matplotlib 中编写分段函数 latex 代码?

python - 调整包含的图形大小时,更正 FigureCanvasTkAgg Canvas 小部件的滚动/调整大小行为

python - (n) python 中的 curses pad 不工作

使用 cpu 查找前 5 个进程的 Python 代码

Python向量化运行最大平行线段

python - x 轴上时间戳的格式

python /matplotlib : imposed ticks with ticker partially missing