在matplotlib中,如何填充由两组不同数组定义的两条曲线?

HD *_*33b 6

我有两套阵列定义两条曲线:(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)]
Run Code Online (Sandbox Code Playgroud)

Sam*_*son 7

我正在努力明确地解释你的问题,但我认为你只是想使用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]),
)
Run Code Online (Sandbox Code Playgroud)

会给你

这个情节