-1

在此处输入图像描述

对于上面的图片,我想绘制阴影区域的包围线,如下所示:

在此处输入图像描述

专家,有什么绝妙的主意吗?

4

1 回答 1

2

复制您的示例很容易,因为可以计算每个的最小值和最大值x并在它们之间填充。例如。

import matplotlib.pyplot as plt
import numpy as np

#dummy data
y = [range(20) + 3 * i for i in np.random.randn(3, 20)]
x = list(range(20))

#calculate the min and max series for each x
min_ser = [min(i) for i in np.transpose(y)]
max_ser = [max(i) for i in np.transpose(y)]

#initial plot
fig, axs = plt.subplots()
axs.plot(x, x)
for s in y:
    axs.scatter(x, s)

#plot the min and max series over the top
axs.fill_between(x, min_ser, max_ser, alpha=0.2)

给予

在此处输入图像描述

对于您显示的数据,这可能会证明是有问题的,因为该系列并非x在所有情况下都共享值。如果是这种情况,那么您需要一些统计技术来以某种方式平滑系列。一种选择是使用类似 的包seaborn,它提供了为您处理所有细节的功能。

于 2015-04-09T10:49:08.270 回答