How to create a fan chart using matplotlib python

share link

by vsasikalabe dot icon Updated: May 9, 2023

technology logo
technology logo

Solution Kit Solution Kit  

The Fan Chart is a Python library used to perform Fan Chart functionality. It provides a more accurate representation of forecasts. We can create the Fan Chart term by the Bank of England in 1996. A fan chart is a chart that joins a line by graph for observed past data and a range value for future predictions. We can link the historical and future assuming data together in a line. It helps show estimated future output. We can also perform this Chart using Jupyter Notebook. Using the commands, we can plot the data of lines for the upper and lower bounds of each prediction interval. 

  • We can use the Fan chart in inflation reports. 
  • It helps display rate predictions. 
  • It helps predict environments with uncertain future values. 

Predictions are the future range, connected with a line graph for future outcomes. As predictions become unsure, these forecast ranges “fan” shapes. Create a Fan chart array using the def create_fanchart(arr) method. We can arrange the NumPy array using the shape attributes and store it in x. Find the mean value and store the result on axis 1. The offset value would be 10,20,30,40. For all the subplots, the matplotlib. pyplot. 

We can use the figure object as a container. We can assign the black color to the mean value. The percentile() calculates the nth value of the array elements along the axis. Since `offset` will never be bigger than 50 for low. The fan chart is visible even for the whole range of the graph. Matplotlib allows you to adjust the transparency using the alpha attribute. We can fill all the offset values for alpha with blue color. S = 1, T = 180, mu = 0.15, vol = 0.05, samples = 100 values to denote the monthly_returns. 

Advantages of Fan Charts:  

  • Fan charts enable us to determine the upside and downside risks. 
  • It delivers the probability assessment. 
  • We can get a huge amount of information. 

Disadvantages of Fan Charts:  

  • During a recession, the usual assumption interval can be wrong. 
  • Sometimes we can change the forecasting presumption from one period to another. 

We can use the Matplotlib library to plot data elements easily. The Matplotlib library is more efficient, better looking, and has interactive Charts. But the Plotly library is a data visualization tool. It is more convenient for creating elaborate plots more efficiently.

Here, we can design the cufflinks to perform Pandas dataframes. So that we will get interactive graphics capability, both are open-source libraries. You can also refer to Plotly Documentation for axis layout specifications. A fan chart is important for policymakers to highlight the key risks. The Banks consider the information reflected in the fan charts. 

Fig : Preview of the output that you will get on running this code from your IDE.


In this solution we used matplotlib and Numpy libraries of Python.


Follow the steps carefully to get the output easily.

  1. Download and Install the PyCharm Community Edition on your computer.
  2. Open the terminal and install the required libraries with the following commands.
  3. Install matplotlib - pip install matplotlib .
  4. Install Numpy - pip install Numpy .
  5. Create a new Python file on your IDE.
  6. Copy the snippet using the 'copy' button and paste it into your Python file.
  7. Run the current file to generate the output.

I hope you found this useful.

I found this code snippet by searching for ' Creating a fanchart in python ' in Kandi. You can try any such use case!

Environment Tested

I tested this solution in the following versions. Be mindful of changes when working with other versions.

  1. PyCharm Community Edition 2022.3.1
  2. The solution is created in Python 3.11.1 Version
  3. matplotlib 3.7.1. Version
  4. Numpy 1.24.2 Version

Using this solution, we can able to create a fan chart using matplotlib python with simple steps. This process also facilities an easy way to use, hassle-free method to create a hands-on working version of code which would help us to create a fan chart using matplotlib python.

Dependent Libraries

matplotlibby matplotlib

Python doticonstar image 17559 doticonVersion:v3.7.1doticon
no licences License: No License (null)

matplotlib: plotting with Python


            matplotlibby matplotlib

            Python doticon star image 17559 doticonVersion:v3.7.1doticonno licences License: No License

            matplotlib: plotting with Python

                      numpyby numpy

                      Python doticonstar image 23755 doticonVersion:v1.25.0rc1doticon
                      License: Permissive (BSD-3-Clause)

                      The fundamental package for scientific computing with Python.


                                numpyby numpy

                                Python doticon star image 23755 doticonVersion:v1.25.0rc1doticon License: Permissive (BSD-3-Clause)

                                The fundamental package for scientific computing with Python.

                                          If you do not have matplotlib and Numpy libraries that are required to run this code, you can install it by clicking on the above link.

                                          You can search for any dependent library on kandi like matplotlib and Numpy.


                                          1. What is a fan chart, and why should I use it? 

                                          It is a Chart used to join all simple data. And it shows all possible ranges of the future estimated value. 

                                          2. Does a fan and a bar chart differ in their visual impact when representing data? 

                                          Fan Chart: It is a probability distribution of data. It predicts future values. 

                                          Bar Chart: It displays different type of data with rectangular bars. Here we can plot the data vertically or horizontally. 

                                          3. What are the advantages of creating an interactive bubble chart over other types? 

                                          • We can use bubble charts to plot 3-dimensional data with the best visualization. 
                                          • It shows the relationship between numeric variables. 
                                          • It makes PowerPoint slides when compared to other charts. 

                                          4. How do I create an interactive histogram with Plotly Python? 

                                          First, we have to import the Plotly library of Python. (import as px) 

                                          Next, we must define the dataframe.(pdf) 

                                          The graph is displayed using the command below. 

                                          fig = px.histogram(df, x="total_bill") 


                                          5. How do I create many plots from one data frame using Plotly Python? 

                                          Step 1  

                                          Import plotly.graphs_objs module and alias as go 

                                          Step 2  

                                          Import make_subplots to create subplots. 

                                          Step 3  

                                          Create subplots for three rows and 1 column. 

                                          Step 4  

                                          Create the append_trace() method to append the Scatter plots. 

                                          Step 5  

                                          Use the update_layout() method to set the layout size. 


                                          1. For any support on kandi solution kits, please use the chat
                                          2. For further learning resources, visit the Open Weaver Community learning page

                                          See similar Kits and Libraries