1

i have a code that plot the figure as fllowsenter image description here

code is

import matplotlib.pyplot as plt
import pandas as pd

years=["ASD","MNG","KQR","MND","QST", "MNR"]
dataavail={
    "Jan":[20,20,30,19,10,21],
    "Feb":[20,13,10,18,15,30],
    "Mar":[20,20,10,15,18,30],
    "Apr":[20,20,10,15,18,0],
    "May":[20,20,10,15,18,0],
    "Jun":[20,20,10,15,18,0],
    "Jul":[20,20,10,15,18,0],
    "Aug":[20,20,10,15,18,45],
    "Sep":[20,20,10,15,18,0],
    "Oct":[20,20,10,15,18,0],
    "Nov":[20,20,10,15,18,0],
    "Dec":[20,20,0,0,0,0],
}


df_month = pd.DataFrame(dataavail, index=years)
fig, ax1 = plt.subplots(1, figsize=(8, 5))
df_month.plot(kind='bar', stacked=True, colormap=plt.cm.tab20, ax=ax1)
plt.legend(loc="upper right", ncol = 3,handlelength=1.5, borderpad=0.2, labelspacing=0.2) 
plt.xticks(rotation=0)
plt.show()

However, instead of stack plot i need the groupby plot something like as figure attached where the x-axis should be same as the first plot.can anybody help me on this. enter image description here

4
  • How many years do you have to display? Commented Nov 16, 2021 at 12:13
  • only 2016,2017,2018,2019,2020,2021 Commented Nov 16, 2021 at 12:17
  • So what is the problem with @mozway answer? Commented Nov 16, 2021 at 12:21
  • if i have many elements in x axis like ASD, MNG... suppose nearly 50 then the bars are not visible properly Commented Nov 16, 2021 at 12:23

1 Answer 1

2

IIUC you want an unstacked bar plot?

df_month.plot.bar()

output:

bar plot

using your code:

You should remove stacked=True (or use stacked=False):

df_month = pd.DataFrame(dataavail, index=years)
fig, ax1 = plt.subplots(1, figsize=(8, 5))
df_month.plot(kind='bar', stacked=False, colormap=plt.cm.tab20, ax=ax1)
plt.legend(loc="upper right", ncol = 3,handlelength=1.5, borderpad=0.2, labelspacing=0.2) 
plt.xticks(rotation=0)
plt.show()

bar plot

Sign up to request clarification or add additional context in comments.

2 Comments

ok if i have many elements in x axis like ASD, MNG... suppose nearly 50 then the plots is not visible properly, HOW CAN THIS BE OVERCOME
Use barh instead of bar, you'll get horizontal bars this tolerates much more values

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.