我想用matplotlib做这个:
fig, ax = plt.subplots()
with sns.axes_style("darkgrid"):
for i in range(5):
ax.plot(means.ix[i][list(range(3,104))], label=means.ix[i]["label"])
ax.fill_between(means.ix[i][list(range(3,104))]-stds.ix[i][list(range(3,104))], means.ix[i][list(range(3,104))]+stds.ix[i][list(range(3,104))])
ax.legend()
Run Code Online (Sandbox Code Playgroud)
我希望阴影区域与中心的线条颜色相同.但是现在,我的问题是means有一些NaN并且fill_between不接受.我收到了错误
TypeError:输入类型不支持ufunc'isfinite',根据强制转换规则''safe',输入无法安全地强制转换为任何支持的类型
关于如何实现我想要的任何想法?该解决方案不需要使用matplotlib,只要它可以绘制我的一系列点与多个系列的不确定性.
我想知道如何使用 matplotlib 在 python 中绘制如下图所示的图形。

其中一条曲线,比如说黄色的,表明对于一组列表,比如 l1 到 l10,其中每个列表的长度为 25k,它计算平均值并将其绘制为黄色实线,并绘制平均值 +/ - 标准偏差作为平均值周围的透明阴影区域。
我们如何使用 matplotlib 绘制这样的东西?我在下面的代码中使用了示例注释的链接。
from matplotlib import pyplot as pl
import numpy as np
l = []
for _ in xrange(20):
l.append(np.random.uniform(0, 1, 100))
mean = np.mean(l, axis=0)
standard_dev = np.std(l, axis=0)
pl.plot(mean)
pl.fill_between(mean, mean-standard_dev, mean+standard_dev)
pl.show()
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
我有以下格式的数据:
| | Measurement 1 | | Measurement 2 | |
|------|---------------|------|---------------|------|
| | Mean | Std | Mean | Std |
| Time | | | | |
| 0 | 17 | 1.10 | 21 | 1.33 |
| 1 | 16 | 1.08 | 21 | 1.34 |
| 2 | 14 | 0.87 | 21 | 1.35 |
| 3 | 11 | 0.86 | 21 | 1.33 |
Run Code Online (Sandbox Code Playgroud)
我使用以下代码从该数据生成 matplotlib 线图,该图将标准差显示为填充区域,如下所示:
def seconds_to_minutes(x, pos):
minutes …Run Code Online (Sandbox Code Playgroud)