Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Position 5 subplots in Matplotlib

I would like to position 5 subplots such that there are three of top and two at the bottom but next to each other. The current code gets close but I would like the final result to look like the following (ignore gray lines):

enter image description here

import matplotlib.pyplot as plt

ax1 = plt.subplot(231)
ax2 = plt.subplot(232)
ax3 = plt.subplot(233)
ax4 = plt.subplot(234)
ax5 = plt.subplot(236)

plt.show()

Current rendering

like image 412
Rohit Avatar asked Nov 05 '14 21:11

Rohit


1 Answers

You can use colspan When you use suplot2grid instead of subplot.

import matplotlib.pyplot as plt

ax1 = plt.subplot2grid(shape=(2,6), loc=(0,0), colspan=2)
ax2 = plt.subplot2grid((2,6), (0,2), colspan=2)
ax3 = plt.subplot2grid((2,6), (0,4), colspan=2)
ax4 = plt.subplot2grid((2,6), (1,1), colspan=2)
ax5 = plt.subplot2grid((2,6), (1,3), colspan=2)

And then every subplot needs to be 2 cols wide, so that the subplots in the second row can be shifted by 1 column.

like image 145
espang Avatar answered Sep 20 '22 12:09

espang