How to create a Marimekko chart using matplotlib python

share link

by vsasikalabe dot icon Updated: May 8, 2023

technology logo
technology logo

Solution Kit Solution Kit  

Viljo and Armi Ratia found Marimekko in 1951. First, we must import matplotlib and numpy libraries of Python. These are very useful for charting. We can use the plot(x,y) method to create a simple line chart. We can import NumPy as the np (alias). Instead of numpy Now, we can refer to this package as np. The Marimekko chart is also known as the mekko, submarine, and Olympic charts. We can derive a two-dimensional stacked chart from a Mekko chart with units. We must create a dictionary of brands and colors to provide a specific color for each brand. We can use charts like columns, bars, lines, and scatter plots for data visualization. 

Two types of Mekko charts: 

  • Marimekko chart: It has columns that are all 100% height but have variable widths. 
  • Bar Mekko chart: It has columns with variable heights and widths. 

We can use matplotlib.pyplot as a container for all the subplots in the axis. We can use it for even a single object of the axes that is only one plot or an array of axes. Inset axes are a great (and often used) tool in Matplotlib. They can zoom in on particular parts of plots to show them in detail. In default, we set the inset_axes loc=1 upper right. This means that if you specify bbox_to_anchor=(0.1,0.1,0.1,0.2), those will be the coordinates of the graph position. The xticks() and yticks() function refers to a list of elements as an argument. The list's elements describe the corresponding action's positions when displaying ticks. This method will track the data points at the given positions in the graph with ticks. Axis spines are the lines that enclose the plot area. Depending on our requirements, we may want to remove some of them. Then, change their color and make them less visible. We can then regulate their width/style or change their position. The line space is an in-built function in Python's NumPy library. It can create spaced elements in a specified interval. 

Different uses of the Marimekko chart: 

  • Health care Industry 
  • Finance Professionals 
  • Retail Industry 
  • Manufacturers to compare regional output and consumption. 

We can use Mekko graphics software for making more than 30 types of charts. The bar Mekko chart is more flexible than a Marimekko chart. We can use it for many bar charts. With some specific settings, we can place the Marimekko on the top of the column in AnyCharts. We can split the Marimekko Chart into 3 cases that different constructors build. Matplotlib is a more used library. We can use it for creating bar graphs, histograms, and line graphs. Sometimes we use the Violin plots to compare the data distribution between groups. The columns depend on the variable thickness t to the corresponding values. 

The Marimekko Chart is more helpful when analyzing two dimensions on a single chart. In an application, we color mosaic plots according to the deviations from independence. We can use the Inset axes in Matplotlib. We have to place the points of the elements on the x-axis and y-axis. But we can color by Marimekko Chart elements the category levels, as in the image below. Nowadays, we use the Marimekko Charts in many applications for data visualization. It is not only used for web developments like HTML and Javascript. But it is also used for Big Data, creating mobile apps, and manipulating data science. 

Here is an example of creating a Marimekko chart using Matplotlib Python: 

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 ' How to round connection for Matplotlib axis spines' 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 Marimekko 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 Marimekko 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 the difference between a bar chart and a Marimekko chart in Python? 

                                          Bar Chart: A chart or graph represents categorical data with rectangular bars. We always plot the bars vertically or horizontally. 

                                          Marimekko Chart: It is a stacked bar graph to show the data. The bar width variable is a measure of size. Adding the width of the bar allows for displaying the relative importance of each bar. 

                                          2. How do I create many bar charts in Python to display data? 

                                          We can use plt.subplots() function. It helps create many charts in Python to display data. It compares many sets of data. 

                                          3. What is the purpose of using a Marimekko chart instead of other charts, such as bubble or line graphs? 

                                          • It has no padding between the points. 
                                          • It uses all data boundaries or areas of each point. 
                                          • The breadth of each category along the x-axis is more important. Because it displays the entire part of the data. 

                                          4. How can I determine which chart type is best for my data visualization needs? 

                                          1. Bar charts: We prefer this to display independent numbers. 
                                          2. Pie charts: This may prefer dividing the whole part into different parts. For example, we must split the budget into items for a particular year. 
                                          3. Line graph: We cannot change how the numbers vary over time. 
                                          4. Cartesian Graph: It has numbers on both axes. 
                                          5. Marimekko chart: We prefer measuring growth, margin, or market share by product. 
                                          6. Scatter plot: It determines the relationship between the x and y axes with one variable. 

                                          5. If analyzing data sets, what advantages does a Marimekko chart have over other charts? 

                                          • Marimekko chart is useful for obtaining market intelligence. This chart divides the product into customer segments. 
                                          • It represents a numerical scale of chart values. 
                                          • Business leaders could use this to analyze sales by product. 

                                          6. Are there any limitations to using Marimekko charts compared to other chart types? 

                                          • The Marimekko chart could be easier to read and understand. 
                                          • It is also critical to remember. 
                                          • It has some limitations for several subcategories. 
                                          • It cannot display the negative values. 
                                          • The differences between subcategories take time to judge. 


                                          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