How To Plot Shaded Error Bands With Seaborn?
I wish to create a plot like the following, where I show some values alongside standard deviations. I have two sets of values, containing the mean and standard deviation obtained
Solution 1:
Here is a minimal example to create such a plot with the given data. Thanks to vectorization and broadcasting, working with numpy simplifies the code.
import matplotlib.pyplot as plt
import numpy as np
mean_1 = np.array([10, 20, 30, 25, 32, 43])
std_1 = np.array([2.2, 2.3, 1.2, 2.2, 1.8, 3.5])
mean_2 = np.array([12, 22, 30, 13, 33, 39])
std_2 = np.array([2.4, 1.3, 2.2, 1.2, 1.9, 3.5])
x = np.arange(len(mean_1))
plt.plot(x, mean_1, 'b-', label='mean_1')
plt.fill_between(x, mean_1 - std_1, mean_1 + std_1, color='b', alpha=0.2)
plt.plot(x, mean_2, 'r-', label='mean_2')
plt.fill_between(x, mean_2 - std_2, mean_2 + std_2, color='r', alpha=0.2)
plt.legend()
plt.show()
Another example:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
sns.set()
N = 100
x = np.arange(N)
mean_1 = 25 + np.random.normal(0.1, 1, N).cumsum()
std_1 = 3 + np.random.normal(0, .08, N).cumsum()
mean_2 = 15 + np.random.normal(0.2, 1, N).cumsum()
std_2 = 4 + np.random.normal(0, .1, N).cumsum()
plt.plot(x, mean_1, 'b-', label='mean_1')
plt.fill_between(x, mean_1 - std_1, mean_1 + std_1, color='b', alpha=0.2)
plt.plot(x, mean_2, 'r--', label='mean_2')
plt.fill_between(x, mean_2 - std_2, mean_2 + std_2, color='r', alpha=0.2)
plt.legend(title='title')
plt.show()
Post a Comment for "How To Plot Shaded Error Bands With Seaborn?"