This is basically the same answer provided by Evert , but expanded to show some interesting fill_between options

from matplotlib import pyplot as pl import numpy as np pl.clf() pl.hold(1) x = np.linspace(0, 30, 100) y = np.sin(x) * 0.5 pl.plot(x, y, '-k') x = np.linspace(0, 30, 30) y = np.sin(x/6*np.pi) error = np.random.normal(0.1, 0.02, size=y.shape) +.1 y += np.random.normal(0, 0.1, size=y.shape) pl.plot(x, y, 'k', color='#CC4F1B') pl.fill_between(x, y-error, y+error, alpha=0.5, edgecolor='#CC4F1B', facecolor='#FF9848') y = np.cos(x/6*np.pi) error = np.random.rand(len(y)) * 0.5 y += np.random.normal(0, 0.1, size=y.shape) pl.plot(x, y, 'k', color='#1B2ACC') pl.fill_between(x, y-error, y+error, alpha=0.2, edgecolor='#1B2ACC', facecolor='#089FFF', linewidth=4, linestyle='dashdot', antialiased=True) y = np.cos(x/6*np.pi) + np.sin(x/3*np.pi) error = np.random.rand(len(y)) * 0.5 y += np.random.normal(0, 0.1, size=y.shape) pl.plot(x, y, 'k', color='#3F7F4C') pl.fill_between(x, y-error, y+error, alpha=1, edgecolor='#3F7F4C', facecolor='#7EFF99', linewidth=0) pl.show()
Boris Gorelik Oct 31 '12 at 12:27 2012-10-31 12:27
source share