Shadowing your Plotnine lines in Python. Forecasting confidence interval geom_ribbon.
Plot your confidence interval easily with Python! With plotnine geom_ribbon() you can add shadowed areas to your lines. We show you how to deal with it!
Add a confidence interval to your forecast plot in Python
After the high interest rate of our GGplot shadowing confidence interval with R post, we are sharing as easy as that how to do it properly in Python Plotnine
module.
It’s not a trivial issue as long as you need to melt your data in order to achieve a tidy (R tidiverse concept) format. In Python you can easily achieve it both with Pandas and Polars. Once you have this format in your data frame, all you need is to call geom_ribbon().
Plotnine geom_ribbon with Polars dataframe
from plotnine import *
import polars as pl
import numpy as np
np.random.seed(1234)
df = pl.DataFrame({
"year": range(2000, 2024),
"value": [np.random.normal(25, 10) for i in range(24)],
"noise": [np.random.normal(1,3) for i in range(24)],
})
(
ggplot(
data=df
) + geom_line(aes(x="year", y="value"), color = "#000000bd", size = 1)
+ geom_ribbon(aes(x="year", ymin = "value", ymax = "value + noise"), fill="#0294a55e")
)
## <Figure Size: (640 x 480)>
For a multi-line plot in Python Plotnine, yout should include the group
and colour
aesthetic as follows:
d2f = pl.DataFrame({
"year": list(range(2000, 2024))*2,
"group": np.sort(['a', 'b']*24),
"value": [np.random.normal(i+25, 10) for i in range(24*2)],
"noise": [np.random.normal(1,3) for i in range(24*2)],
})
(
ggplot(
data=d2f
) + geom_line(aes(x="year", y="value", group="group", colour="group"), size = 1)
+ geom_ribbon(aes(x="year", ymin = "value", ymax = "value + noise", group="group"), fill="#a59e022e")
)
## <Figure Size: (640 x 480)>
Stay updated on Python tips
Hopefully, this post has helped you become familiar with Plotnine and geom_ribbon function.
If you want to stay updated…