1

I am trying to convert pandas dataframe bar plot to matplotlib OO concept.

(npy_dataframe["Complaint Type"].value_counts()).head().plot(kind="bar")

this live perfectly working and generating bar chat attached

enter image description here

now this is my OO matplotlib trying to convert below what is wrong I am doing?

%matplotlib inline
fig = plt.figure() # creates a figure
fig, ax = plt.subplots(figsize=(10,6))
#print(plt.style.available)
plt.style.use("seaborn-whitegrid")
# most frequest complaint
ax.bar(npy_dataframe["Complaint Type"].value_counts().head())
# add some label and title
ax.set(title="Most Common Compalints", ylabel="No of Complaints", xlabel="Complaint Type")

Make the legebd visible

ax.legend().set_visible(True)

Add title to the figure

fig.suptitle("Compalints Analysis", fontsize=16, fontweight="bold")

Add a mean line

ax.axhline(y=npy_dataframe["Complaint Type"].value_counts().head().mean(),linestyle="--")

Error is :-

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-25-2cbbdac7a93f> in <module>
      5 plt.style.use("seaborn-whitegrid")
      6 # most frequest complaint
----> 7 ax.bar(npy_dataframe["Complaint Type"].value_counts().head())
      8 # add some label and title
      9 ax.set(title="Most Common Compalints", ylabel="No of Complaints", xlabel="Complaint Type")

C:\ProgramData\Anaconda3\lib\site-packages\matplotlib__init__.py in inner(ax, data, args, kwargs) 1445 def inner(ax, args, data=None, kwargs): 1446 if data is None: -> 1447 return func(ax, *map(sanitize_sequence, args), kwargs) 1448 1449 bound = new_sig.bind(ax, args, *kwargs)

TypeError: bar() missing 1 required positional argument: 'height'

I understand "Height" parameter is missing but how I compute this?.

1 Answers1

1

Only this line is solved the error

ax.bar(npy_dataframe["Complaint Type"].value_counts().head().keys(),npy_dataframe["Complaint Type"].value_counts().head())