Multiple charts not working with subplot function? Python

I have created 6 pie charts, however, they all appear separately. I would like to have them all appear on the same figure (3 rows, 2 columns).

I have therefore tried to use the subplot function, but I don’t think I am using it correctly and I do not see where I am going wrong.

Below is the code I wrote, using python 2.7. I am new to coding and just need a bit of guidance for this trivial matter, thank you!

Also, if you have any tips on making this code more “streamlined”, I’m all ears!

I get the error:

AttributeError: 'numpy.ndarray' object has no attribute 'pie'

Answer

The fastest way to get your code to run is to “flatten” the 2D axs array into a 1D array right after creating it:

fig, axs = plt.subplots(3, 2)
axs = axs.flatten()
# The rest of your existing code

Also, indexing in Python starts at 0, so you’ll want to change your index numbers to go from 0 to 5, instead of 1 to 6.

Explanation: the error you’re getting comes from fact that the axis array returned by fig, axs = plt.subplots(3, 2) is two-dimensional, with 3 rows and 2 columns. So the first AxesSubplot object is at axs[0, 0] (or axs[0][0]), but axs[0] returns the first row of the 3-by-2 array, which is itself an array.

(On another note, you should upgrade to Python 3.x 🙂 https://www.python.org/doc/sunset-python-2/)